簡體   English   中英

system()函數的返回值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM