进程结束调用接口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

posted @ 2021-10-21 20:47  yangrourou  阅读(280)  评论(0编辑  收藏  举报