c程序如何在退出时打印exit()返回值



我正在尝试打印exit()系统调用的返回代码。但由于程序退出,它并没有机会打印出它将被杀死的东西。我的问题是如何在程序中打印返回代码。

y = syscall(NR_mycall); //makes an exit in this second
printf("%sn", strerror(y));

不出所料,没有输出!:U(

如果您从程序中的多个位置调用exit(),并且您想知道在这些退出调用中使用了哪个退出代码,那么不要使用exit,而是在main中使用setjmp,并在代码中使用longjmp(现在有exit),并在longjmp调用中传递错误/退出代码。现在main将知道使用了哪个退出/错误代码。

您无法打印退出状态。我建议在执行一个将打印它的文件后,用echo $?检查终端中的退出状态。或者转到http://bashrcgenerator.com/让自己成为一个个人提示,并添加"退出状态",以便您每次都能在提示中看到退出状态。

最新更新