2011-04-20 88 views
0

我試圖用命令系統調用在C++中

system("dir *.txt /b :gen> file.txt");

交流計劃

這是給我一個錯誤說,進入一個文件中的文件列表「沒有足夠的內存給內存不夠「

,但是當我寫相同的代碼(DIR * .TXT/b:根> file.txt的),在cmd中它工作正常

,也是我嘗試了一些其他的代碼也很喜歡‘CD’他們也給予相同的錯誤

錯誤正在顯示,如果我使用perror(「錯誤」);

+0

它是C還是C++? – 2011-04-20 11:09:44

+0

可以請你發佈你得到的確切的錯誤信息嗎? – 2011-04-20 11:26:00

+0

mycode的文件:#include 的#include 的#include //#包括 無效的主要() { 系統(「DIR E:\ *的java/B/O/P:根> file.txt的「; perror(」error:「); }輸出:錯誤:內存不足 – 2011-04-20 13:26:08

回答

1

不能依靠perror()正確報告使用system()開始的進程的狀態。

perror()所做的全部檢查errno的值,但這並不是由system()設置的。

有關如何從system()實際捕獲狀態信息,請參閱documentation

+0

如果我沒有使用perror,它沒有給出任何錯誤knid,那麼代碼也不工作 – 2011-04-20 11:20:06