(摘抄)return和exit区别

来源:互联网 发布:花开花落知多少下一句 编辑:程序博客网 时间:2024/06/07 10:27
#include <stdio.h>#include <unistd.h>#include <stdlib.h> int test(void){    printf("hello\n");    sleep(1);     exit(0);    //return 0;} int main(int argc, char **argv){    int i;    i++;    printf("i=%d\n", i);      while(1){        test();    }        return 0;}


 上面的程序中,main函数使用死循环的方式调用子函数test()。如果在子函数中使用exit(),则循环仅执行一次;如果在子循环中使用return关键字,则死循环将一直执行下去。


#include <stdio.h>#include <unistd.h>#include <stdlib.h>               int main(int argc, char **argv){                  printf("outpud\n");    printf("content in buffer");                   _exit(0);    //exit(0);} 


上面的程序中,main函数中如果使用_exit(0)只输出output,如果使用exit(0)既输出output又输出content in buffer。


三者说明:

return退出函数。

exit退出进程。在正式释放资源前,将以反序的方式执行由on_exit()函数和atexit()函数注册的清理函数,同时刷新流缓冲区。

_exit不调用任何注册函数直接退出进程,不会处理标准I/O缓冲区。

0 0
原创粉丝点击