命令行参数
当执行一个程序时,调用 exec 的进程可将命令行参数传递给新程序
例子如下:
#include <stdio.h>
#include <stdlib.h>
#define err_exit(x) do { printf("%s\n", x); exit(1); } while (0)
int main(int argc, char *argv[])
{
if (argc < 2) {
err_exit("Missing arguments");
}
for (int i = 0; i < argc; i++) {
printf("argv[%d]: %s\n", i, argv[i]);
}
return 0;
}
在历史上,大多数 UNIX 系统支持 main 函数带有三个参数,其中第三个参数就是环境表的地址:
int main(int argc, char *argv[], char *envp[]);
第三个参数与全局变量 environ 相比也没有带来更多益处, 所以 ISO C 和 POSIX.1 规定 main 函数只有两个参数。 通常用 getnev 和 putenv 函数来访问特定的环境变量,而不是用 environ 变量。 但是,如果要查看这个环境,则必须使用 environ 指针
getenv 函数
#include <stdlib.h>
char *getenv(const char *name);
此函数返回一个指针指向 name = value 字符串中的 value
例如:
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("%s\n", getenv("PATH"));
return 0;
}