进程结束调用接口exit、_exit、return的区别
exit、_exit、return 等三个函数都是结束进程的函数,其主要区别有
1、exit()
头文件:stdlib.h
函数声明:void exit(int status);
参数说明:status:进程的退出状态(正常退出“0”)
返回值:成功:0;
出错:非 0 值;
作用:(1)结束进程的执行;
(2)关闭所有已打开的文件;
(3)如果父进程在wait等待状态,exit则会重新启动父进程运行;
(4)清除缓冲区,将缓存区中的数据刷入内存。
参考代码:
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 int main() { 5 printf("输出结果为:\n"); 6 fprintf(stdout,"xuning"); //stdout函数为行缓存,只有在末尾加入\n才能输出 7 exit(0); //刷缓存 8 }
输出:
输出结果为:
xuning
2、_exit()
头文件:stdlib.h
函数声明:void _exit(int status);
参数说明:status:进程的退出状态(正常退出“0”)
返回值:成功:0;
出错:非 0 值;
作用:结束进程的执行;
参考代码:
1 #include <stdio.h> 2 #include <unistd.h> 3 4 int main() { 5 printf("输出结果为:\n"); 6 fprintf(stdout,"xuning"); //stdout函数为行缓存,只有在末尾加入\n才能输出 7 _exit(0); //不刷缓存 8 }
输出:
输出结果为:
3、return语句
作用:(1) 放在main函数中,结束进程。
(2) 表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值。
1 #include <stdio.h> 2 3 int main() { 4 printf("输出结果为:\n"); 5 fprintf(stdout,"xuning"); //stdout函数为行缓存,只有在末尾加入\n才能输出 6 return 0; //刷缓存 7 }
输出:
输出结果为:
xuning