在C中,int main(int argc, char *argv[])
真的需要接收程序参数吗?换句话说,在使用签名int main(void)
定义main函数时,是否可以仅使用POSIX接口恢复程序参数?
我觉得我错过了一些东西,看到了:
unsetenv()
等功能)和主机标识(gethostid()
)。GetCommandLineW
和CommandLineToArgvW
功能,HP-UX提供全局变量__argc_value
和__argv_value
。 Linux有/proc/self/cmdline
,可以解析为argv
和argc
。答案 0 :(得分:4)
POSIX规范不包含可以检索命令行参数的函数。所有指定的函数基本上都需要main()
来协调传递argc
和argv
以进行解析。
POSIX规范(IEEE 1003.1,2013版本 - 我写的当前版本)有一节描述标准实用程序使用的命令行语法(在“Shell和实用程序”卷中描述)。但是,这些实用程序 - 当然足够 - 会使用POSIX函数,因此可以通过调用它们的main(argc, argv)
来实现。