【发布时间】:2012-05-15 20:17:56
【问题描述】:
我正在尝试编译和运行该应用程序,该应用程序是 4 年前创建的。它是在 Embarcadero RAD Studio C++ builder 中为 Windows 开发的。现在我尝试使用最新版本的 RAD Studio 在 VirtualBox 中的 Windows 中编译和运行它。我在我的应用中对另一个应用进行了系统调用:
system("dot.exe -Tjpg -o nfa.jpg NFA_graph.txt");
它一直返回 1 并且文件没有被创建。我也试过了
system("Echo %CD% >> z:\log.txt");
并且文件没有被创建。我也试过这样:
FILE *fpipe;
char *command = "Echo %CD% >> z:\log.txt";
char line[256];
if (0 == (fpipe = (FILE*)_popen(command, "r")))
{
perror("popen() failed.");
exit(1);
}
while (fread(line, sizeof line, 1, fpipe))
{
ShowMessage(line);
}
_pclose(fpipe);
我什么也没得到。我想知道这种奇怪行为的原因是否是我在 VirtualBox 中运行这一切?
【问题讨论】:
-
这个“z:\log.txt”应该是“z:\\log.txt”。
-
我猜你在 4 年前使用的是 Windows XP 和现在的 Windows 7,它不允许你在没有管理员权限的情况下写入根文件夹。如果从命令行运行它会发生什么?
标签: c++ system virtualbox c++builder system-calls