[此篇文章並非原創若有冒犯敬請來信告知]
return與exit()的差別
同事問我:在main()裡面return,跟在main()裡面呼叫system call exit()有什麼不同? 我的觀念不算太清楚,所以整理一下網路上讀到的說法。
在main()裡面return,跟在main()裡面呼叫system call exit()是唯一兩者效果相同的地方,兩者的效果均為結束process。
若在main以外的函式裡呼叫return,local variables即從stack裡消失,返回呼叫此函式的地方。若呼叫exit,則該process就此結束、不會返回。
此外,可以使用atexit()或on_exit()註冊一個函式,結束process前,會呼叫該函式。
參考資料:
在main()裡面return,跟在main()裡面呼叫system call exit()是唯一兩者效果相同的地方,兩者的效果均為結束process。
若在main以外的函式裡呼叫return,local variables即從stack裡消失,返回呼叫此函式的地方。若呼叫exit,則該process就此結束、不會返回。
此外,可以使用atexit()或on_exit()註冊一個函式,結束process前,會呼叫該函式。
參考資料:
全站熱搜