【发布时间】:2019-10-06 09:16:33
【问题描述】:
char * arge[]在C程序主函数中作为第三个参数是什么意思?
#include <stdio.h>
#include <unistd.h>
int main(int argc, char const *argv[], char *arge[]) {
int i;
char **p;
printf("pid = %d\n", getpid());
printf("argc = %d\n", argc);
for (i = 0; i < argc; i++)
printf("%s\n",argv[i] );
p=arge;
while (*p != NULL)
printf("%s\n", *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 = %d\n", getpid());
printf("argc = %d\n", argc);
for(;;);
}
如果你执行代码,你会得到所有的环境变量。
【问题讨论】:
-
What's the use of the third, environment variable argument to the C++ main()? 的可能副本(发现者归功于 @mort)
-
我添加了我的 C 程序的代码以及它返回的内容
-
@Yunnosch 那么问题是 btw "arge[]" 和 "envp[]" 有什么区别