windows 7上的系统功能失败,出现拒绝访问错误 在Windows 7中,我在Visual Studio 2012中编写了一个简单的C++应用程序,其中我使用的是系统命令,奇怪的是,系统命令在访问拒绝错误时失败。例如,我试图使用system(“mkdir C:\abc”)创建一个目录,命令失败,errno设置为EACCESS。 虽然我无法通过编程方式创建新目录,但我可以通过命令提示符或资源管理器很好地创建新目录。 此外,CreateDirectory Windows API工作正常,问题出在系统函数上,因为无论我向系统函数传递什么命令,它都会失败,每次访问都会出现相同的错误

windows 7上的系统功能失败,出现拒绝访问错误 在Windows 7中,我在Visual Studio 2012中编写了一个简单的C++应用程序,其中我使用的是系统命令,奇怪的是,系统命令在访问拒绝错误时失败。例如,我试图使用system(“mkdir C:\abc”)创建一个目录,命令失败,errno设置为EACCESS。 虽然我无法通过编程方式创建新目录,但我可以通过命令提示符或资源管理器很好地创建新目录。 此外,CreateDirectory Windows API工作正常,问题出在系统函数上,因为无论我向系统函数传递什么命令,它都会失败,每次访问都会出现相同的错误,c++,windows,function,permissions,system,C++,Windows,Function,Permissions,System,我还注意到这是特定于机器的,在不同的机器上运行相同的程序是没有问题的 知道这台不幸的机器出了什么问题吗 我已经尝试过的事情 1) 设置应用程序的管理员权限 2) 已运行系统文件检查器-未检测到任何问题 3) 禁用avast 任何帮助都会很好。谢谢。系统使用%ComSpec%/c执行命令。默认的ComSpec值是%SystemRoot%\system32\cmd.exe。您的应用程序中此环境变量的值是多少?如果%comspec%不是问题(尽管我怀疑是),则可能值得使用Process Monitor

我还注意到这是特定于机器的,在不同的机器上运行相同的程序是没有问题的

知道这台不幸的机器出了什么问题吗

我已经尝试过的事情 1) 设置应用程序的管理员权限 2) 已运行系统文件检查器-未检测到任何问题 3) 禁用avast


任何帮助都会很好。谢谢。

系统使用
%ComSpec%/c
执行命令。默认的
ComSpec
值是
%SystemRoot%\system32\cmd.exe
。您的应用程序中此环境变量的值是多少?如果%comspec%不是问题(尽管我怀疑是),则可能值得使用Process Monitor(可从MS网站获得)查看您是否可以识别system()函数失败时系统正在做什么。@eryksun:echo%comspec%返回“C:\Windows\System32\cmd.exe”ECHOR%系统StROCK%返回“C:\Windows”——从命令提示符和C++应用程序尝试。@ HarryJohnston:感谢提到进程监视器,我在进程监视器日志中挖掘了一点,并意识到在“C/:Windows /SysWOW4/CMD.exe”下引用CMDE EXE,而不是引用“C:/Windows /Stule32”中的一个。(我不知道为什么)。当我尝试在syswow64下运行cmd.exe时,它失败了,错误为“连接到系统的设备不工作”。在谷歌上搜索一下,发现了一些与病毒和/或反病毒软件有关的链接。因此,我更新了我的avast反病毒软件,重新启动了计算机,一切正常。非常感谢你们两位。@HarryJohnston:我无法将你们的答复标记为答案。