Answers:
exit(0)
和exit(1)
C语言有什么区别?
exit(0)
表示程序成功终止,并且可以完全移植;而
exit(1)
(通常)表示程序终止不成功。但是,它的用法是不可移植的。
请注意,C标准定义EXIT_SUCCESS
并EXIT_FAILURE
从C程序返回终止状态。
0
和EXIT_SUCCESS
是标准指定的用于指示成功终止的值,但是,仅EXIT_FAILURE
是用于返回未成功终止的标准值。1
虽然在许多实现中都用于相同的功能。
参考:
C99标准:7.20.4.3 exit
函数
第5段
最后,控制权返回到主机环境。如果status的值为零或
EXIT_SUCCESS
,则返回状态成功终止的实现定义形式。如果status的值为EXIT_FAILURE
,则返回实现定义的状态失败成功终止的形式。否则,返回的状态将由实现定义。
exit
是至少您的问题(地狱,有可能甚至是一个C库可用那里。没有什么是便携式!!! 111)。
exit
数值表示成功。exit(0)
出于C一致性的考虑,被视为特殊情况。是的,POSIX是一个标准,但并非所有系统都符合它。如果您要编写假定使用POSIX的代码,则可以随意这样做,但这会限制代码的可移植性。
exit(0)等效于exit(EXIT_SUCCESS)。
exit(1)等效于exit(EXIT_FAILURE)。
失败时,通常会返回任何正值以退出该过程,您可以使用$?在shell上找到该值。
值大于128,这是由信号引起的。因此,如果有任何以信号终止的shell命令,则返回状态必须为(128+信号编号)。
例如:
如果任何shell命令被SIGINT终止,则$?将给出130(128 + 2)(这里2是SIGINT的信号编号,请使用kill -l检查)
必须始终使用整数值调用exit(),并且将非零值用作错误代码。
另请参阅:使用exit()函数
exit(0)
表示程序(进程)正常成功终止。
exit(1)
表示程序(进程)通常无法成功终止。
如果您想观察这件事,您必须了解Unix中的信号处理和过程管理。
知道sigaction
,watipid()
..for()...诸如此类... API ...........
exit function
。在C编程语言中,出口函数调用在出口处注册的所有函数,并终止程序。
exit(1)
表示程序(进程)未成功终止。
刷新文件缓冲区,关闭流,并删除临时文件
exit(0)
表示程序(进程)成功终止。
EXIT_FAILURE
因此,单个常数()是不够的。