1

我已经看到了很多关于 unix 系统的结果。我正在使用 cygwin,所以我正在使用unistd.h库。我正在尝试运行此命令,但它没有运行。我在这里能错过什么?

execl("C:\\WINDOWS\\SYSTEM32\\CMD.EXE", "/c echo foo>C:\\Users\\Sarp\\Desktop\\foo.txt");

4

1 回答 1

3

execl函数调用不会为您拆分参数。这基本上意味着您需要在调用函数时将每个命令行参数分隔为不同的字符串参数。例如:

execl("C::\\WINDOWS\\SYSTEM32\\CMD.EXE", "cmd.exe", "/c", 
      "echo", "foo", ">C:\\Users\\Sarp\\Desktop\\foo.txt")

但是,我的印象是输出重定向可能不起作用(取决于 Windows shell 如何解释这些),因此我鼓励您尝试更接近于您的用例system()功能。

于 2013-02-04T08:44:49.707 回答