2011-04-20 107 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