小编Shi*_*eft的帖子

argc 传递的值是否会小于 1

我正在汇编中开发我自己的 getopt() 版本,并试图让我的头脑围绕这个片段,特别是第 476 行

    if (argc < 1)
       return -1;
Run Code Online (Sandbox Code Playgroud)

因为正常的调用约定是这样的;

    int c = getopt( argc, argv, "vm:drx:");
Run Code Online (Sandbox Code Playgroud)

假设程序员事先没有对 argc 进行任何操作,我认为可能存在的唯一原因是某些 Linux 风格(可能不符合 POSIX)不会传递 argv[0] 应用程序路径和名称。因此,argc 可能为零。这个猜想有可信度吗?

此变量在此过程中使用了 12 次,在此之前的两级过程中,它仅被断言或复制,从未被修改,也根本没有被引用。

linux command-line glibc

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

标签 统计

command-line ×1

glibc ×1

linux ×1