#include<stdio.h>
#include<stdlib.h>
main()
{
printf("Hello World..\n");
system("ls");
}
这里...... ON SUCCESSFUL执行系统函数返回“ls”命令的状态..并且ON FAILURE它返回-1 ..
所以任何人都可以帮助我获得系统函数的FAILURE条件,返回值为“-1”
答案 0 :(得分:4)
system
函数如果-1
本身失败则返回system
,如果它调用的命令失败则不返回system
函数。例如,如果-1
调用失败,fork
将返回system("false")
。如果您的系统资源非常短缺(例如内存),或者您的系统对可以运行的进程数量施加限制,则会发生这种情况。
如果命令失败(例如,如果调用system
),则wait
返回的值不仅仅是命令的返回值;它是man 2 wait
系统调用返回的值; system()
了解更多信息。 (这假定类似Unix的系统; system
在其他操作系统上的行为不同。)
当然,如果您想查看调用int result = system("ls");
返回的值,则需要将该值存储在变量中:
system
您应该阅读system
函数的文档。
如果您试图导致-1
失败并返回main
,一种方法是使用它来递归调用您的程序。这可能会占用大量内存,并可能会干扰您的系统。只有当您是使用该系统的唯一人员时才这样做,并且您不介意可能干扰其操作。
(顺便提一下,int main(void)
的定义应该是main()
,而不仅仅是int
,尽管这不是直接相关的。在1999年之前,省略返回类型将默认为{{1}不再允许,但是许多编译器仍然支持旧表单。空括号不指定参数的数量; (void)
明确表示没有参数,并且是首选表单。)