我正在尝试打印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/让自己成为一个个人提示,并添加"退出状态",以便您每次都能在提示中看到退出状态。