Linux 命令行参数与环境变量深度解析及代码实践
在系统编程中,命令行参数和环境变量是进程获取外部信息的主要途径。理解它们的工作原理,对于编写健壮的程序至关重要。
命令行参数
原理与接收方式
main 函数通常不直接带参数,但在实际运行中,操作系统会将命令行输入解析后传递给程序。这通常由 shell 进程完成,涉及程序替换机制。
标准的 C 语言 main 函数签名如下:
int main(int argc, char *argv[])
其中 argc 表示参数个数,argv 是指向参数字符串数组的指针。
选项功能示例
命令行参数常用于实现程序的选项功能。例如,一个简单的关机控制程序可以通过参数判断是否取消关机。
基础写法:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char input[20] = {0};
system("shutdown -s -t 60");
again:
printf("请注意,你的电脑将在一分钟之内关机,如果输入 cancel,就取消关机\n");
scanf("%s", input);
if (strcmp(input, "cancel") == 0) {
system("shutdown -a");
printf("关机被取消\n");
} else {
goto again;
}
return 0;
}
优化写法(使用循环):
#define _CRT_SECURE_NO_WARNINGS
{
input[] = {};
system();
() {
();
(, input);
((input, ) == ) {
system();
();
;
}
}
;
}


