1

我正在尝试使用 fork 和 execlp 运行一个非常简单的程序,但它并没有像我预期的那样工作。我目前在我的工作目录中有一个简单命名为“1”的文件。所以命令rm 1*应该删除它。但是,当通过 execlp 尝试时,它不会。

int main()
{

  if(fork()==0)
    {
      execlp("rm", "rm", "1*",  NULL);
      perror("Problem\n");
    }

  return 0;
}

谢谢你。

4

1 回答 1

1

对于你想要做的事情,你想要:

execlp("sh", "sh", "rm 1*", (char *)0);

请注意,从安全性、健壮性和效率的角度来看,这是一个相当糟糕的主意。如果要删除与模式匹配的文件,则应直接在 C 中执行此操作。使用glob函数和简单的循环很容易。

于 2012-10-25T22:56:07.550 回答