高端网站设计合肥网站建设,旅游网站规划设计,wordpress通过关键词,北京文化馆设计公司哪种进程的退出#xff08;main函数的退出#xff09; main函数的返回值叫做进程的退出码#xff0c;该退出码表示进程执行的情况。例如#xff1a;一个函数返回一个值时#xff0c;我们要知道函数的执行情况#xff0c;可以去看函数的返回值。
例子#xff1a; 1 #include…进程的退出main函数的退出 main函数的返回值叫做进程的退出码该退出码表示进程执行的情况。例如一个函数返回一个值时我们要知道函数的执行情况可以去看函数的返回值。
例子 1 #includestdio.h2 int main()3 {4 return 10;//把返回值故意设置成10 5 }运行后使用 echo $? 查看最近一次进程结束的退出码 一般地0表示进程执行成功非0表示失败与C中0表示假非0表示真相反用不同的数字表示失败的原因。这就是为什么用非0表示失败0表示成功因为0只有一个表示成功不需要原因而失败的原因有多种可以用非零的多种数字来表示。 错误码转化成错误描述这样我们就知道进程终止的原因。
关于错误描述
1.使用语言和系统自带的方法进行转换 我们打印Linux系统的错误码strerror和错误信息进行观察。
代码
int main()
{for(int i0;i200;i){printf(%d:%s\n,i,strerror(i));}return 10;
}
部分错误描述如下 如图0表示进程执行成功1表示操作不被允许2表示没有找到文件或目录……
2.自定义错误信息 我们可以进行自定义错误信息 6 enum{7 success 0,8 open_err,9 malloc_err10 }; 11 const char* errorToDesc(int code)12 { 13 switch(code) 14 { 15 case success: 16 return success; 17 case open_err: 18 return file open error; 19 case malloc_err:20 return malloc error;21 default:22 return unknown;23 }24 }25 int main()26 {27 int code malloc_err;28 printf(%s\n,errorToDesc(code));29 return code;30 }
结果 函数的退出关于errno 除了进程退出函数退出我们怎么知道函数执行情况函数有返回值这里与进程的退出极其类似。 调用函数我们通常希望看到两种情况 1.函数的执行结果——我们需要的返回值 2.函数的执行情况——成功失败什么原因 通常根据函数的返回值就可以判断该函数的执行情况是否成功但是但我们需要知道函数为什么失败时就需要函数的错误码类似于进程的退出码。 进程退出的场景 1.代码运行完毕结果正确 2.代码运行完毕结果不正确 3.代码没有执行完异常终止 其中前两个根据进程的退出码可以进行判断。 而第3条是进程收到了异常信号每个信号都有不同的编号而不同的信号编号表明了异常的原因。 结论任何进程的最终执行情况都可已使用两个数字信号编号退出码表明具体的执行情况。
signumber信号编号exit_code退出码情况00代码正常执行完进程正常退出0!0代码跑完结果不正确!0!0 or 0代码没有执行完收到异常信号退出码无意义