[英]Return value of system() function
#include<stdio.h>
#include<stdlib.h>
main()
{
printf("Hello World..\n");
system("ls");
}
此處...成功執行系統函數返回“ ls”命令的狀態。失敗時返回-1。
所以任何人都可以幫我獲得系統函數的失敗條件,該條件將返回值設為“ -1”
如果system
本身發生故障,則system
函數返回-1
如果system
調用的命令失敗,則返回-1
。 例如,如果fork
調用失敗,則system
返回-1
。 如果系統的資源(例如內存)非常短缺,或者系統對可運行的進程數施加了限制,則可能發生這種情況。
如果命令失敗(例如,如果您調用system("false")
),則system
返回的值不只是命令的返回值; 這是wait
系統調用返回的值; man 2 wait
更多信息。 (這假設是一個類似Unix的系統; system()
在其他操作系統上的行為有所不同。)
當然,如果要查看對system
的調用返回的值,則需要將該值存儲在變量中:
int result = system("ls");
您應該閱讀system
功能的文檔。
如果您試圖導致system
失敗並返回-1
,那么一種方法是使用它來遞歸調用程序。 這會消耗大量內存,並且可能會干擾您的系統。 僅當您是使用該系統的唯一人員,並且不介意可能干擾其操作時,才執行此操作。
(順便說一下, main
的定義應該是int main(void)
,而不僅僅是main()
,盡管這並不直接相關。在1999年之前,省略返回類型將默認為int
;這不再允許,但是許多編譯器仍支持空括號未指定參數的數量; (void)
明確表示沒有參數,這是首選形式。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.