+ -
当前位置:首页 → 问答吧 → 请问的调用execl函数想执行ls *.c -l 命令,为什么没成功

请问的调用execl函数想执行ls *.c -l 命令,为什么没成功

时间:2010-07-30

来源:互联网

  1. #include <unistd.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>

  4. int main()
  5. {
  6.     pid_t pid;
  7.     pid = fork();
  8.     if(pid == 0 )
  9.     {   
  10.         printf("in child , my pid is %d\n", getpid());
  11.         printf("global pid is %d\n", pid);
  12.         execl("/bin/ls", "ls", "*.c", "-l",  NULL);
  13.         perror("if reached here, execl failed");
  14.     }   
  15.     else if(pid > 0)
  16.     {   
  17.         printf("in parent, my pid is %d\n", getpid());
  18.         printf("global pid is %d\n", pid);
  19.     }   
  20.     else
  21.         perror("fork() failed\n");

  22.     return 0;
  23. }
复制代码

作者: bw_0927   发布时间: 2010-07-30

system吧...

作者: liwangli1983   发布时间: 2010-07-30

就想用execl试试,该怎么弄呢?

作者: bw_0927   发布时间: 2010-07-30

你出错提示帖出来啊?
我猜是execl这种调用方式不支持通配符扩展吧,你在shell里执行"ls -l *.c"的时候,是shell给你扩展的*.
而如果用system就没问题了

作者: liwangli1983   发布时间: 2010-07-30

相关阅读 更多

热门下载

更多