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

标签 c cygwin system popen

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

我正在运行可在 UNIX 和 Windows 操作系统上运行的简单命令,例如:

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

我在这里做错了什么?

最佳答案

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

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

关于Cygwin-尝试用C语言运行DOS命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14641191/

相关文章:

c - 无法读取 C 中的字符

php - PHP explode 函数的 C 替代方案

emacs - 在 perl 模式 emacs 中关闭自动缩进

Python (pip) throw [SSL : CERTIFICATE_VERIFY_FAILED] even if certificate chain updated

c# - 获得唯一的机器ID

linux - 一个系统只运行一个程序

c - 通过 EOF 中断 while 循环

c - Ora*C PCC-S-02201,在期望以下 : 之一时遇到符号 "L"

PHP exec/shell_exec/system 无法通过浏览器工作

c - $status 在 C shell 中指的是什么?