2012-11-30 75 views
-3

这个简单的程序应该运行命令ls 但输出是1和2.可以有人向我解释为什么ls不工作?'ls'命令无法通过Linux在Linux中执行

#include <stdio.h> 
main() 
{ 
    int pid,stat; 
    if((pid=fork())==0) 
     { 
     execl("/bin/","ls",NULL); 
     printf("1"); 
    exit(1); 
     } 
    else 
     { 
     wait(&stat); 
     printf("2"); 
     } 
} 
+0

得到了一个教训:一知半解最危险。 (我不得不删除注释:)) – cipher

回答

1

试着这么做:

execl("/bin/ls", "ls", (char*)NULL); 
      ^^^^ 
+0

'execl(“/ bin/ls”,“ls”,(char *)NULL);'实际上。 – melpomene

+0

@melpomene为什么要投出'NULL'?! o.0 – cnicutar

+0

我已经试过了,它不起作用 –