Cygwin-尝试用C语言运行DOS命令

时间:2013-02-01 06:53:12

标签: c cygwin system popen

我尝试了system()popen()。当我在cygwin终端上运行程序时,它工作得非常好但是当我尝试通过双击.exe文件在Windows平台上运行它时出现此错误: exception::handle: Exception: STATUS_ACCESS_VIOLATION 我在popen()上收到此错误,但我没有收到system()的任何错误。

我正在运行适用于unix和windows操作系统的简单命令,例如:

system("echo foo>foo.txt");

我在这里做错了什么?

1 个答案:

答案 0 :(得分:2)

我认为这是因为system()popen()都将他们的参数传递给路径中没有的/bin/sh,您可以先尝试将其添加到路径中。根据{{​​3}},您需要在路径中添加以下内容:

cyggcc_s-1.dll
cygiconv-2.dll 
cygintl-8.dll 
cygncursesw-10.dll 
cygreadline7.dll 
cygwin1.dll
ls.exe 
sh.exe