return n和exit(int n)小结
来源:互联网 发布:史蒂芬斯数据库 编辑:程序博客网 时间:2024/06/04 19:57
exit(int n)其实就是直接退出程序,因为默认的标准程序入口为
int main(int argc, char** argv),返回值是int型的。
一般在shell下面,运行一个程序,然后使用命令echo $?就能得到该程序的返回值,也就是退出值,在main()里面,你可以用return n,也能够直接用exit(n)来做。unix默认的习惯正确退出是返回0,错误返回非0。
理论上exit(int n)可以返回任何int整数(<255)。返回的不同数值主要是给调用者作不同处理的。
单独的进程是返回给操作系统的。如果是多进程,是返回给父进程的。
在父进程里面调用waitpid()等函数得到子进程退出的状态,以便作不同处理
exit(0) 表示程序正常, exit(1)/exit(-1)表示程序异常退出
exit() 结束当前进程/当前程序/,在整个程序中,只要调用 exit ,就结束
exit(1)表示进程正常退出. 返回 1;
exit(0)表示进程非正常退出. 返回 0.
return() 是当前函数返回,当然如果是在主函数main, 自然也就结束当前进程了,如果不是,那就是退回上一层调用。在多个进程时.如果有时要检测上进程是否正常退出的.就要用到上个进程的返回值..
return只是 所在函数返回,后面会继续执行
C程序的终止分为两种: 正常终止和异常终止.
正常终止分为: return, exit, _exit, _Exit, pthreade_exit
异常中指分为: abort, SIGNAL, 线程响应取消
主要说一下正常终止的前4种, 即exit系列函数.
#include <stdlib.h> /* ISO C */
void exit(int status);
void _Exit(int status);
#include <unistd.h> /* POSIX */
void _exit(int status);
以上3个函数的区别是:
exit()(或return 0)会调用终止处理程序和用户空间的标准I/O清理程序(如fclose), _exit和_Exit不调用而直接由内核接管进行清理.
因此, 在main函数中exit(0)等价于return 0.
- return n和exit(int n)小结
- C++问题Point& Element(int n) { return points[n]; }
- sys.exit(n)和exit()、os._exit(n)
- int *n;int &n;int *&n
- 关于int *p[n]和int (*p)[n]
- 关于int *p[n]和int (*p)[n]
- java的System.exit(0)和System.exit(n)
- exit()与exit(n)区别
- return 和exit
- exit和return区别
- exit和return
- exit和return
- exit()和return
- 关于exit() 和 return ()
- exit和return区别
- return 和 exit
- exit 和 return
- return和exit
- How to find the file which contain a specified string
- 《linux内核设计与实现》阅读笔记 第五章 中断和中断处理程序
- 为脚本语言平反-JavaScript篇(2)
- iphone / OPhone / Android
- 如何在Mobile平台建立GPRS连接进行SOCKET通信
- return n和exit(int n)小结
- 动态生成aspx文件
- 特殊的线性表——栈(进制转换例)
- 100句经典2
- EXT GridPanel XML操作
- 常用AT指令
- 查询数据库中所有用户表的使用情况
- java面试题及答案(基础题122道,代码题19道)【转】
- 关于最近公司领导要求加班事宜