C中的exit(0)和exit(1)有什么区别?

84 c

有人能告诉我吗?exit(0)exit(1)C语言有什么区别?

Alo*_*ave 111

exit(0)exit(1)C语言有什么区别?

exit(0)表示程序终止成功并且完全可移植,而
exit(1)(通常)表示终止不成功.但是,它的使用是不可移植的.

请注意,C标准定义EXIT_SUCCESSEXIT_FAILURE从C程序返回终止状态.

0并且EXIT_SUCCESS是标准指定的值,表示成功终止,但是,只有EXIT_FAILURE返回不成功终止的标准值.1但是在许多实现中用于相同的.


参考:

C99标准:7.20.4.3 exit功能
第5段

最后,控制权返回给主机环境.如果status的值为零 EXIT_SUCCESS,则返回状态成功终止的实现定义形式.如果status的值为EXIT_FAILURE,则返回状态为不成功终止的实现定义形式.否则返回的状态是实现定义的.

  • @CatPlusPlus:在OpenVMS上,使用任何奇数值调用`exit`表示成功.出于C一致性,`exit(0)`被视为一种特殊情况.是的,POSIX是一个标准,但并非所有系统都符合它.如果你想编写假设POSIX的代码,你可以自由地这样做,但它限制了代码的可移植性. (3认同)

Sam*_*aan 10

exit 在C语言中采用表示退出状态的整数.

退出成功

通常,退出状态为0被视为成功,或由程序成功执行导致的故意退出.

退出失败

退出状态1被认为是失败,并且最常见的意思是程序由于某种原因必须退出,并且无法成功完成正常程序流程中的所有内容.

这是一个谈论退出状态的GNU资源.


正如@Als所说,应该用两个常数代替0和1.

EXIT_SUCCESS 由标准定义为零.

EXIT_FAILURE 标准不受限制,但许多系统确实将其作为一个实现.


sch*_*sch 9

exit(0)表示程序终止没有错误.exit(1)表示存在错误.

您可以使用不同的值1来区分不同类型的错误.