ARM技术论坛
直播中

嵌入式小能手

2年用户 1511经验值
擅长:嵌入式技术
私信 关注
[经验]

飞凌嵌入式ElfBoard-文件I/O的了解探究之错误的退出操作

当程序在执行某个函数时出现错误,如果该错误会导致后续步骤无法正常进行,应该在错误发生时立即终止程序的执行,而不是让程序继续运行下去。
在 Linux 系统下,进程正常退出除了可以使用return之外,还可以使用exit、_exit以及_Exit。
1.3.5.1 exit
该函数是一个标准C库函数,函数会执行一些清理工作,最后调用_exit()函数终止进程。
1.头文件
#include
2.函数原型
void exit(int status);
3.参数
status:表示程序退出的返回值。
4.返回值
无。
5.示例
#include
#include
#include
int main()
{
        FILE *fp = fopen("exit", "r");
        if (!fp) {
                perror("exit test");
                printf("errno1= %d\n", errno);
                exit(errno);
        }
        fclose(fp);
        printf("errno2= %d\n", errno);
        exit(errno);
}
6.编译运行并查看测试结果
exit test: No such file or directory
errno1= 2
1.3.5.2 _exit和_Exit
这两个函数都是系统调用,函数会在不执行exit()的清理操作的情况下立即终止调用的进程,它不刷新I/O缓冲区,也不关闭打开的文件描述符。
1.头文件
#include 和#include
2.函数原型
void _exit(int status); 和 void _Exit(int status);
3.参数
status:表示程序退出的返回值。
4.返回值
无。
5.示例
与exit相同,仅换成_exit和_Exit。

更多回帖

发帖
×
20
完善资料,
赚取积分