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シェルがそれらをどのように解釈するかによっては)出力リダイレクトが機能しない可能性があるという印象を受けているので、使用例に近い関数を試してみることをお勧めします。system()

于 2013-02-04T08:44:49.707 に答える