亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Linux Shell > 正文

exit(-1)或者return(-1)shell得到的退出碼為什么是255

2020-07-27 19:04:38
字體:
來源:轉載
供稿:網友

下面我寫了一個hello world程序,一起看看吧:

// filename: main.c #include <stdio.h> int main(void) {   printf("hello wolrd!/n");   return(-);   }

編譯執行:gcc main.c && ./a.out

現在我們看看在當前shell中返回上一個執行過程的返回值是多少,是 “-1” 嗎?

inuyasha@inuyasha-Aspire-4741:~/桌面$ gcc main.c && ./a.out

hello world!

inuyasha@inuyasha-Aspire-4741:~/桌面$ echo $?

255

啊,結果為什么 "255"呢?調用一個程序, 程序退出-1, 得到結果不是“-1”嗎?

以下引用自:http://www.laruence.com/2012/02/01/2503.html

這個問題簡單的說, 是因為exit或者main函數中的return, 只能使用0~255之間的值. -1 的unsigned值就是255.

那么復雜點的說呢?

我們知道, 在Shell中, 運行一個命令, 一個程序, 都是fork一個子進程(然后exec)來執行的, 而這個程序的退出碼, 被Shell(父進程), 通過wait來收集而后報告給我們的.

pid_twait(int *statloc);

而對于wait來說, 歷史上原因, 他將通過statloc返回一個16bit的interge(現在也有用32位表示的, 但是會兼容已有的設計). 這16bits的interge中, 高8位就是程序退出的值(exit, 或者return), 而低八位表示導致這個程序退出的信號(其中一位表示是否有Core文件產生), 如果程序是正常退出, 那么低八位為0[1].

所以, 如果我們返回-1, 并且因為我們是正常退出, 所以Shell通過wait收集到的子進程退出狀態是:

11111111 00000000

而高八位作為unsigned, 就是255了.

另外, 補充一下, 在Linux的內建Shell命令中, 很多都會遵守一個退出狀態碼的約定, 具體的值對應的意思[2]:

Exit Code Number Meaning Example Comments
1 Catchall for general errors let “var1 = 1/0″ Miscellaneous errors, such as ”divide by zero” and other impermissible operations
2 Misuse of shell builtins (according to Bash documentation) empty_function() {} Seldom seen, usually defaults to exit code 1
126 Command invoked cannot execute   Permission problem or command is not an executable
127 “command not found” illegal_command Possible problem with $PATH or a typo
128 Invalid argument to exit exit 3.14159 exit takes only integer args in the range 0 亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
www.久久色.com| 国外日韩电影在线观看| 国产91精品高潮白浆喷水| 国产成人精品免费久久久久| 久久精品亚洲94久久精品| 久久精品国产一区二区电影| 久久久在线视频| 国产在线观看一区二区三区| 国产精品久久久久久久久免费| 国产精品夫妻激情| 成人精品久久av网站| 久久精品影视伊人网| 精品调教chinesegay| 中文字幕日韩欧美精品在线观看| 久久综合伊人77777| 在线视频日韩精品| 国产不卡精品视男人的天堂| 久久免费少妇高潮久久精品99| 久久中文字幕国产| 97超级碰碰人国产在线观看| 久久久久久久久久久久久久久久久久av| 97国产一区二区精品久久呦| 亚洲一区制服诱惑| 成人美女av在线直播| 欧美巨猛xxxx猛交黑人97人| 国产精品成av人在线视午夜片| 亚洲香蕉成视频在线观看| 91精品国产91久久久久| 亚洲女人天堂av| 国产精品吊钟奶在线| 国产一区二区三区毛片| 欧美精品videossex88| 国外成人免费在线播放| 在线观看精品国产视频| 美日韩精品免费观看视频| 成人黄色中文字幕| 亚洲欧美一区二区三区四区| 成人中文字幕+乱码+中文字幕| 亚洲www永久成人夜色| 欧美一区二粉嫩精品国产一线天| 97在线观看视频| 欧美专区在线播放| 久久亚洲影音av资源网| 欧美精品免费看| 国产精品白丝jk喷水视频一区| 国产欧美最新羞羞视频在线观看| 伊人久久大香线蕉av一区二区| 日韩av在线一区二区| 欧美激情中文字幕在线| 亚洲免费视频网站| 亚洲天堂av综合网| 亚洲欧美中文日韩v在线观看| 国产精品视频区1| 精品丝袜一区二区三区| 日韩小视频在线| 精品亚洲夜色av98在线观看| 奇米一区二区三区四区久久| 韩国19禁主播vip福利视频| 亚洲一区第一页| 国产日韩精品在线播放| 日韩经典中文字幕| 久久99热这里只有精品国产| 成人午夜在线视频一区| 欧美激情在线视频二区| 91精品国产综合久久香蕉| 一区二区三区黄色| 97视频在线观看免费高清完整版在线观看| 欧美性在线观看| 国产亚洲精品美女| 国产精品2018| 亚洲精品综合久久中文字幕| 日韩专区在线观看| 色综合久久久888| 91精品国产综合久久男男| 亚洲理论电影网| 亚洲一区二区三区777| 色综合色综合久久综合频道88| 欧美激情2020午夜免费观看| 在线视频日本亚洲性| 亚洲成色777777在线观看影院| 影音先锋欧美精品| 亚洲美女又黄又爽在线观看| 久久久久免费视频| 久久久av免费| 丝袜情趣国产精品| 日本亚洲欧洲色α| 热久久这里只有精品| 2020久久国产精品| 亚洲欧美一区二区三区在线| 午夜精品久久久久久久白皮肤| 欧美日韩亚洲视频| 国产精品99久久久久久久久| 久久精品亚洲国产| 日本高清不卡在线| 奇米4444一区二区三区| 一本大道亚洲视频| 91色精品视频在线| 国产精品极品在线| 久久久亚洲网站| 亚洲精品美女在线观看播放| 成人亚洲综合色就1024| 亚洲视频在线视频| 亚洲精品久久久久国产| 亚洲人成网在线播放| 国内精品400部情侣激情| 欧美日韩亚洲91| 91色视频在线导航| 亚洲国产精品99久久| 国产在线观看不卡| 狠狠躁夜夜躁人人爽超碰91| 成人欧美一区二区三区在线湿哒哒| 欧美色播在线播放| 日韩电影免费在线观看中文字幕| 久久精品电影网站| 亚洲爱爱爱爱爱| 亚洲人成电影网站色| 成人av.网址在线网站| 国产精品普通话| 91精品久久久久久久久久入口| 中文字幕视频在线免费欧美日韩综合在线看| 97视频在线观看免费高清完整版在线观看| 不卡在线观看电视剧完整版| 8x海外华人永久免费日韩内陆视频| 精品久久久国产精品999| 欧美性色19p| 欧美在线视频在线播放完整版免费观看| 久久精品国产91精品亚洲| 欧美日韩黄色大片| 日韩中文娱乐网| 亚洲天堂精品在线| 成人免费看黄网站| 亚洲成人av在线播放| 亚洲欧洲偷拍精品| 久久人人爽人人爽人人片av高清| 国产精品∨欧美精品v日韩精品| 国产精品久久久久久超碰| 久久精品国产2020观看福利| 亚洲午夜未满十八勿入免费观看全集| 在线色欧美三级视频| 日韩高清电影好看的电视剧电影| 精品一区二区三区电影| 国产精品精品视频| 91精品久久久久久久久久另类| 欧美激情videos| 国产综合久久久久久| 成人天堂噜噜噜| 韩国v欧美v日本v亚洲| 欧美成人午夜视频| 欧美激情一二区| 日韩精品久久久久久久玫瑰园| 91精品在线影院| 亚洲mm色国产网站| 成人福利视频网| 国产精品视频男人的天堂| 国产一区香蕉久久| 亚洲黄页视频免费观看| 亚洲精品国产电影| 国产午夜精品免费一区二区三区| 欧美日韩国产丝袜另类| 欧美日韩午夜激情| 成年人精品视频| 神马国产精品影院av| 国产成人97精品免费看片| 欧美片一区二区三区|