在POSIX中,可以使用主(void)恢复命令行参数吗?
在C中, int main(int argc, char *argv[])
真的需要接收程序参数? 换句话说,当使用签名int main(void)
定义主函数时,是否可以仅使用POSIX接口来恢复程序参数?
我觉得我错过了一些东西,看到:
unsetenv()
)和主机标识( gethostid()
)等函数进行扩展。 GetCommandLineW
和CommandLineToArgvW
函数,而HP-UX提供全局变量__argc_value
和__argv_value
。 Linux有/proc/self/cmdline
,可以将其解析为argv
和argc
。 POSIX规范不包括可以检索命令行参数的函数。 所有指定的函数本质上都需要main()
来编排传递argc
和argv
以进行解析。
POSIX规范(IEEE 1003.1,2013版 - 我写这篇文章时的最新版本)有一节描述了标准实用程序使用的命令行语法(在“Shell和Utilities”卷中有描述)。 但是,这些实用程序 - 自然就会使用POSIX函数,因此将使用调用它们的main(argc, argv)
来实现。
上一篇: In POSIX, can a main(void) recover command line arguments?