在POSIX中,可以使用主(void)恢复命令行参数吗?

在C中, int main(int argc, char *argv[])真的需要接收程序参数? 换句话说,当使用签名int main(void)定义主函数时,是否可以仅使用POSIX接口来恢复程序参数?

我觉得我错过了一些东西,看到:

  • POSIX定义了多个接口来检索其他特定于进程的信息。 例如,有环境变量的接口(可以继承自C99,但也可以使用unsetenv() )和主机标识( gethostid() )等函数进行扩展。
  • 特定的操作系统定义了检索命令行参数的“全局”方法。 例如,Windows提供GetCommandLineWCommandLineToArgvW函数,而HP-UX提供全局变量__argc_value__argv_value 。 Linux有/proc/self/cmdline ,可以将其解析为argvargc

  • POSIX规范不包括可以检索命令行参数的函数。 所有指定的函数本质上都需要main()来编排传递argcargv以进行解析。

    POSIX规范(IEEE 1003.1,2013版 - 我写这篇文章时的最新版本)有一节描述了标准实用程序使用的命令行语法(在“Shell和Utilities”卷中有描述)。 但是,这些实用程序 - 自然就会使用POSIX函数,因此将使用调用它们的main(argc, argv)来实现。

    链接地址: http://www.djcxy.com/p/88967.html

    上一篇: In POSIX, can a main(void) recover command line arguments?

    下一篇: Speed up Python/Cython loops.