Linux-进程环境(shell环境)

命令行参数:
对于c语言来说,程序的执行是从main函数开始的,原型如下:

int  main(int  argc, char*  agrgv[])

argc:命令行参数的个数
argv:是这项参数的各个指针所构成的数组,其每个元素是一个字符串,以”\0”结尾,代表一个命令行参数。
argv[0]:代表了该程序的路径名加文件名
argv[argc]:是一个NULL指针


补充函数:char* rindex(const char* s, char c);
作用:查找字符串s中最后一次出现字符c的位置,将该字符出现的地址返回,找不到返回NULL| ‘\0’;返回的地址为字符串,包括结束符\0;


环境变量表也是一个指针数组

external char ** environ;

其使用方法如同数组。
另关于环境变量的查看,获取,设置,替换删除操作等到以后再来补充。


得到进程的结束状态
当输入:
echo $?命令时,可以查看结束进程的结束状态。
$?保存的是最近一次运行的程序的返回值。这个返回值有3种情况;
1.main函数运行结束,该变量保存了main函数的返回值。
2.程序调用exit函数结束运行,该变量保存exit函数的参数。
3.程序异常退出,保存异常出错的错误号。
对第三个举例:

int  main()
{
     printf("hello world\n");
     //return 0;
}

a.如果没有正常return ,则$?的值为12(printf的返回值)。
b.如果正常return 了,则该值为 0;
c.如果说运行程序时出错,找不到,那么保存的是1.
建议:如果程序能够正常运行时,最好不要使用return 1,或者 exit(1)这样的返回值,容易造成不必要的混乱。


使用erron调试程序
c语言提供了一个全局变量–erron,其头文件为errno.h
原理:当系统调用出错时都会操作此变量,将其设置为一个特定值,输出这个变量的值开发者就知道系统调用失败的原因。

你可能感兴趣的:(linux)