- exit() 结束当前进程/当前程序/,在整个程序中,只要调用 exit ,就结束
exit(0)表示进程正常退出. 返回 0;
exit(1)表示进程非正常退出. 返回 1.
- exit与return的区别
exit()函数与return语句的最大区别在于,调用exit()函数将会结束当前进程,同时删除子进程所占用的内存空间,把返回信息传给父进程。当exit()中的参数为0时,表示正常退出,其他返回值表示非正常退出,执行exit()函数意味着进程结束;而return仅表示调用堆栈的返回,其作用是返回函数值,并且退出当前执行的函数体,返回到函数的调用处,在main()函数中, return n和exit(n)是等价的。
return示例1:
#include <stdio.h> #include <stdlib.h> int print() { int n; n = 0; printf("使用return来结束循环\n"); while(1) { if(9==n) return n; n++; } return 0; } void main(void) { int ret; printf("调用print()函数之前\n"); ret = print(); printf("print()函数的返回值ret=%d\n",ret); printf("调用print()函数之后\n"); return ; }
运行结果:
调用print()函数之前
使用return来结束循环
print()函数的返回值ret=9
在上面的代码中,用return语句来退出while死循环,在main()函数中print()函数的调用处将返回值赋给ret,打印输出后可以看到使用return语句成功地返回了9。
exit示例2:
#include <stdio.h> #include <stdlib.h> void print() { int n; n = 0; printf("使用exit来结束循环\n"); while(1) { if(9==n) exit(1); n++; } return ; } void main(void) { int ret; printf("调用print()函数之前\n"); ret = print(); printf("print()函数的返回值ret=%d\n",ret); printf("调用print()函数之后\n"); return ; }
运行结果:
调用print()函数之前
使用exit来结束循环
从以上代码可以看出,如果执行exit()函数后能够返回到main()函数的调用处,那么可以打印出接下来的信息“调用print()函数之后”,但是运行结果表明在调用exit()函数之后没有任何输出,所以执行exit()函数之后将直接结束整个程序的运行。