2017-10-09 140 views
-2

我试图从exit()systemcall打印出返回码。但是由于程序退出,它没有机会打印出将被杀死的东西。我的问题是,如何在程序中打印返回代码。c程序如何在退出时自动打印退出()返回值

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

正如预期的那样没有输出! :U(

+0

你不能。你为什么想要? –

+2

为什么?听起来像一个XY问题!你的程序在调用'exit()'时传递返回码,所以为什么不在*之前打印*? –

+0

问问自己:我可以自杀,然后去酒吧? –

回答

0

如果调用exit()从你的程序的多个地方,你想知道哪个退出代码在这些退出调用中使用,然后而是采用exit,在main使用setjmp,并在你的代码中使用longjmp现在有exit,并在longjmp调用中传递错误/退出代码,现在main会知道使用了哪个退出/错误代码

0

你不能打印退出状态,我推荐的是检查退出状态在你的终端上输入echo $?后执行一个文件打印出来,或者去http://bashrcgenerator.com/并且给自己一个个人提示并添加'退出状态'让您在每次提示时都能看到退出状态。