2015-05-21 163 views
-1

execl命令的用法是什麼?execl函數在C語言中的使用

excel("/bin/sh", "sh", "-c", cmdstring, (char *)0); 
_exit(127); 

誰能解釋execl命令使用每個語句? 而且爲什麼只有_exit(127)而不是exit(0)

什麼是127數字表示?

+1

什麼語言/操作系統/環境是嵌入的'excel'功能? (最重要的問題)。 '_exit(127)'是標準的* nix返回碼,用於表示'找不到命令'。祝你好運。 – shellter

+3

沒有「UNIX編程語言」之類的東西。你的意思是C? (你可能會誤讀'execl'或'execle'?) – jwodder

回答

3

execl是幾個函數之一(exec*),它們讓您用指定爲第一個參數的文件(可執行文件)提供的進程替換當前的進程代碼。你的過程的整個空間被新鮮的空間取代......其他參數作爲命令的參數。進程是控制某些代碼執行的一種系統結構。 exec讓你變異那個代碼。

在這種情況下exec成功,則舊代碼遺忘,你將永遠無法重新進入它。這不是函數調用。

如果exec失敗,則執行繼續,在您的情況下將調用_exit_exit是一個系統功能,旨在阻止當前進程的執行,導致其死亡。 exit是一個C函數,它在C級執行相同的操作,大致關閉C流並調用_exit

127)提供的值被用於這個處理的結束的一些信息傳達給啓動它的過程(過程是通過使用的fork發起一個呼叫克隆的處理)。該值可以是任何八位值,但0用於表示正確終止的進程,以及任何其他非0值表示在某種異常情況下終止的進程。

0

您可以在終端中鍵入 man execl 以獲取有關execl命令的更多信息。