Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
char*arge[]作为C中main中第三个参数的含义_C_Main - Fatal编程技术网

char*arge[]作为C中main中第三个参数的含义

char*arge[]作为C中main中第三个参数的含义,c,main,C,Main,在C程序中,作为主函数的第三个参数,char*arge[]意味着什么 #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 <

在C程序中,作为主函数的第三个参数,char*arge[]意味着什么

#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;
}
#包括
#包括
int main(int argc,char const*argv[],char*arge[]{
int i;
字符**p;
printf(“pid=%d\n”,getpid());
printf(“argc=%d\n”,argc);
对于(i=0;i
提到的“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(;;);
}
#包括
#包括
int main(int argc,char const*argv[],char*arge[]{
printf(“pid=%d\n”,getpid());
printf(“argc=%d\n”,argc);
对于(;);
}

如果执行代码,将获得所有环境变量。

第三个参数是环境变量。这里有更深入的回答:


将环境变量作为main的第三个参数似乎在C和POSIX中都没有指定,因此它可能不可移植:

而我学到了一些新的(或更好的旧的)你应该标记为复制而不是回答。回答问题的链接没有提到它是am扩展,而不是C或POSIX,我觉得这是重要的信息。我同意这些信息很重要。然而,你发现的Q/A组合比你想象的要好。注释和“其他”答案确实提供了这些信息。或者其他建议的副本更符合您的口味。@莫特您应该是对的,这是一个环境变量,给出的名称只是不同而已。“argE”E-like-environment..可能的重复(finders credits to@mort)我添加了我的C程序的代码以及它的内容returns@Yunnosch那么问题是“arge[]”和“envp[]”有什么区别呢