我用下面的代码打印了环境变量,我怀疑main函数中char *argv[]
和char *envp[]
的参数之间是否有联系。
示例代码:-
#include <stdio.h>
int main(int argc, char *argv[], char *envp[])
{
int index = 0;
while (envp[index])
printf("%s\n", envp[index++]);
}
删除参数argc和argv后执行程序时,出现分段错误。
有人请解释一下。!
最佳答案
争论被称为什么并不重要,重要的是他们的立场。
如果您删除了argc
和argv
,那么您只有
int main(char *envp[])
这是非法的(因为第一个参数应该是整数)。
包括
argc
和argv
但不使用它们有什么问题?另外,我应该指出
envp
是不可移植的。但是它被最广泛使用的C实现所接受。关于c - 用C列出环境变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34304528/