1. 进程退出场景 代码运行完毕,结果正确 代码运行完毕,结果不正确 代码异常终止
2. 进程常见退出方法
从main返回
调用exit
调用_exit
3. 进程异常退出:在任意点被终止了的进程我们称之为异常退出。
ctrl+c: 程序在前台出现问题用它让程序终止
4. _exit函数 #include<unistd.h> void_exit(int status); 参数:status是int ,定义了进程的终止状态,父进程通过wait来获取该值。 说明:虽然status是int,但是仅有8位可以被父进程所用,所以_exit(-1),在终端执行$?发现返回值为255。
5. exit()函数 #include<unistd.h> void exit(int status); 这两个函数是有区别的,exit()在退出进程时,首先会调用atexit()对进程的地址空间进行销毁,然后调用cleanup()关闭所有的流,使得所有的缓冲被输出,在调用_exit()函数,结束进程调用。 _exit()直接结束进程调用。 在使用中的现象是,在程序中使用_exit()不会刷新缓冲区,使用exit()则会刷新缓冲区。表现是刷新缓冲区了,显示器上会有我们要输出的字符,反之,则没有。
6. return 执行return n,等同于执行exit(n),因为调用main的运行时函数会将main的返回值当做exit的参数。