小编jwd*_*hue的帖子

如何修复需要 semver-major 依赖项更新的 npm 漏洞?

我从https://github.com/kitware/paraviewweb克隆了 ParaViewWeb,然后执行了以下操作;-

$ npm install
$ npm audit fix
Run Code Online (Sandbox Code Playgroud)

留给我这个:

found 42 vulnerabilities (9 low, 23 moderate, 10  high) in 41716 scanned packages
14 vulnerabilities require semver-major dependency updates.
28 vulnerabilities require manual review.
Run Code Online (Sandbox Code Playgroud)

如何修复需要 semver-major 依赖项更新的 14 个漏洞?

npm

9
推荐指数
1
解决办法
6249
查看次数

如何使用可变数量的参数调用实现?

为了简化,假设我有这样的功能

void myFunc(id _self, SEL _cmd, id first, ...)
{

}
Run Code Online (Sandbox Code Playgroud)

在那个方法中,我想在_self的超类上调用实现(imp).我可以使用以下代码访问IMP:

Class class = object_getClass(_self);
Class superclass = class_getSuperClass(class);
IMP superimp = class_getMethodImplementation(superclass, _cmd);
Run Code Online (Sandbox Code Playgroud)

现在,我怎么能打电话给那个imp?

objective-c objective-c-runtime

6
推荐指数
1
解决办法
1172
查看次数

如何在 Mac OS X 上找到目标代码库的默认搜索路径?

dyld(动态链接编辑器)的手册页显示:
DYLD_FALLBACK_LIBRARY_PATH ... 是一个以冒号分隔的包含库的目录列表。它用作安装路径中未找到的库的默认位置。默认情况下,它设置为 $(HOME)/lib:/usr/local/lib:/lib:/usr/lib。

但是,与手册页相反,DYLD_FALLBACK_LIBRARY_PATH 在 Mac OS X 上默认为空或未定义,如以下 bash 命令所示。

printenv DYLD_FALLBACK_LIBRARY_PATH
# OR
echo $DYLD_FALLBACK_LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)

事实上,手册页上列出和解释的所有环境变量dyld都是空的或未定义的,如以下 bash 脚本所示。

#!/bin/bash

while IFS=$'\n' read -r; do
  printf %b "$REPLY  =  "
  printenv "$REPLY"
  echo
done < <(cat << EOF
DYLD_FRAMEWORK_PATH
DYLD_FALLBACK_FRAMEWORK_PATH
DYLD_LIBRARY_PATH
DYLD_FALLBACK_LIBRARY_PATH
DYLD_ROOT_PATH
DYLD_SHARED_REGION
DYLD_INSERT_LIBRARIES
DYLD_FORCE_FLAT_NAMESPACE
DYLD_IMAGE_SUFFIX
DYLD_PRINT_OPTS
DYLD_PRINT_ENV
DYLD_PRINT_LIBRARIES
DYLD_PRINT_LIBRARIES_POST_LAUNCH
DYLD_BIND_AT_LAUNCH
DYLD_NO_FIX_PREBINDING
DYLD_DISABLE_DOFS
DYLD_PRINT_APIS
DYLD_PRINT_BINDINGS
DYLD_PRINT_INITIALIZERS
DYLD_PRINT_REBASINGS
DYLD_PRINT_SEGMENTS
DYLD_PRINT_STATISTICS
DYLD_PRINT_DOFS
DYLD_NO_PIE
DYLD_SHARED_CACHE_DIR
DYLD_SHARED_CACHE_DONT_VALIDATE
EOF
)
Run Code Online (Sandbox Code Playgroud)

此外,虽然/etc/ld.so.confLinux 存储了加载程序为了查找库而搜索的所有目录,但 Mac OSX 缺少/etc/ld.so.conf …

macos linker ld lib

5
推荐指数
1
解决办法
1660
查看次数

您可以将多个本机模块打包到同一个NPM包中吗?

我使用cmake,musl,加上一些抽象和精心放置的#ifdefsC中编写了一个跨平台的nodejs本机模块.

它内置于使用一个模块的cmake-JS和我有3个构建服务器:Windows,MacLinux做栋所以我有3个是在所有的平台上正常工作的本机模块.

我们有一个内部NPM存储库,我可以继续发布,以便公司内的其他团队可以简单npm install module地获取我的模块.

关键是,它是一种混乱的客户端将需要选择基于他们的(即我会从每一个构建服务器的部署的所有3个模块)平台上的模块,所以我宁愿通过某种方式部署单一模块将3个平台特定模块合并在一起.

这是可能的吗?我如何构建这种模块的内部结构?*

例如,绑定是否会找出平台并找到合适的.node文件?

*我不希望包含的代码,并在客户端编译为使(他们会期待能够写使用JavaScript一个简单的脚本,例如,用我的模块在客户端上一个相当大的负担 - 他们需要建立C构建链,担心他们的脚本运行的平台等等,这将是一个震撼.

module node.js npm

5
推荐指数
1
解决办法
269
查看次数

GitVersion 的 +semver 命令如何工作?

我正在尝试使用GitVersion+semver:patch命令来更改我的补丁版本号,但它没有按我预期的方式工作。

我的master分支上有一个标签“2.2.0”。我在我的开发分支上做出了以下承诺:

b5d9f141  (HEAD -> develop, origin/develop) +semver:patch
75122489  Added unit test. +semver:patch
3b4e7eef  (tag: 2.2.0, origin/master, master) Merge branch 'release/2.2.0'
Run Code Online (Sandbox Code Playgroud)

我正在关注GitFlow。在最近两次提交之后,我希望我的版本报告为 2.3.2,但 GitVersion 仍然将其报告为 2.3.0。

"主要次要补丁":"2.3.0"

它是如何+semver工作的,有没有什么方法可以按照我想要的方式仅使用提交消息来提高活动版本号(即无需手动标记)?

git git-flow gitversion

4
推荐指数
1
解决办法
1056
查看次数

遍历argv []

我是C的新手,我完成了一个小练习,该练习遍历传递给它的参数中的字母并识别元音。初始代码仅适用于一个参数(argv[1])。我想扩展它,以便能够遍历所有参数,argv[]并重复识别元音的相同过程。

代码:

#include <stdio.h>

int main(int argc, char *argv[])
{
    if (argc < 2) {
        printf("ERROR: You need at least one argument.\n");
        return 1;
    }

    if (argc == 2) {
        int i = 0;
        for (i = 0; argv[1][i] != '\0'; i++) {
            char letter = argv[1][i];

            if (letter == 'A' || letter == 'a') {
                printf("%d: 'A'\n", i);
                //so on
            }
        }
    } else {
        int i = 0;
        int t = 2;
        for (t …
Run Code Online (Sandbox Code Playgroud)

c arrays pointers

3
推荐指数
1
解决办法
5713
查看次数

为什么我们不能在 FORFILES 脚本中使用 CALL :label 命令?

这段代码

forfiles /P %pathname% /M *.log /c "cmd /c echo @file"
Run Code Online (Sandbox Code Playgroud)

会很高兴地列出一堆文件。

我们可以替换ECHOwithRENAMEMOVE或许多其他内部命令的组合:例外是CALL标签名称的 a 。

例如将ECHO上面的替换如下:

forfiles /P %pathname% /M *.log /c "cmd /c CALL :listit @file"
 : :
 : :
exit /b

:listit
echo %1
exit /b
Run Code Online (Sandbox Code Playgroud)

我希望有相同的输出会给出错误消息,通常

Invalid attempt to call batch label outside of batch script.
Run Code Online (Sandbox Code Playgroud)

这种行为不是 Microsoft 的文档所评论的,而且由于替代方案已经足够了,我并没有打算让它发挥作用。

不过我有兴趣嘛,为什么不呢?!,所以我提出这个问题

为什么我们不能在 FORFILES 脚本中使用 CALL :label 命令?

谢谢你。

cmd batch-file forfiles

3
推荐指数
1
解决办法
749
查看次数

为什么ffmpeg输出以0001而不是0000开头的帧?

我正在使用 ffmpeg 从视频中提取帧。一切正常,但有些事情似乎很奇怪:输出的编号始终以 0001 而不是 0000 开头。在最小工作示例下面,是控制台的输出和生成的帧的图片。我在Win10上使用Windows shell。

ffmpeg -i P1390752.MP4 -vframes 4 frame%%04d.png
Run Code Online (Sandbox Code Playgroud)

控制台输出:

C:\Users\xxxx>ffmpeg -i P1390752.MP4 -vframes 4 frame%04d.png
ffmpeg version git-2020-01-15-0dc0837 Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 9.2.1 (GCC) 20200111
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec …
Run Code Online (Sandbox Code Playgroud)

video ffmpeg

2
推荐指数
1
解决办法
1602
查看次数