char * arge[]作为 C 程序中主函数中的第三个参数是什么意思?
#include <stdio.h>
#include <unistd.h>
int main(int argc, char const *argv[], char *arge[]) {
int i;
char **p;
printf("pid = %dn", getpid());
printf("argc = %dn", argc);
for (i = 0; i < argc; i++)
printf("%sn",argv[i] );
p=arge;
while (*p != NULL)
printf("%sn", *p++);
execve("prog2", argv, arge);
return 0;
}
提到的"prog2"是这个:
#include <stdio.h>
#include <unistd.h>
int main(int argc, char const *argv[], char *arge[]) {
printf("pid = %dn", getpid());
printf("argc = %dn", argc);
for(;;);
}
如果执行代码,将获得所有环境变量。
第三个参数是环境变量。这里更深入地回答了这个问题:第三个环境变量参数对 main(( C++有什么用?
将环境变量作为 main 的第三个参数似乎都没有在 C 和 POSIX 中指定,因此它可能不可移植: char *envp[] 作为 main(( 的第三个参数是否可移植