我::system("del *.log")
在 win32 exe 中执行 上面的代码将输出打印到 exe 控制台。如何抑制打印到控制台的输出?
问问题
3945 次
3 回答
8
使用重定向并将标准输出重定向到 nul 文件:
::system("del *.log > nul")
“nul”是所有目录中存在的隐藏文件,它所做的只是丢弃写入它的所有内容。
这仍然会显示错误(如果有的话)。如果您还想抑制 stderr,则:
::system("del *.log > nul 2>&1")
于 2013-04-27T08:33:52.473 回答
3
在 Windows 上,您应该SHFileOperation()
改用。有可用的可变标志,例如FOF_NO_UI
,用于抑制向用户输出的视觉输出。例如:
SHFILEOPSTRUCT FileOp = {0};
FileOp.wFunc = FO_DELETE;
FileOp.pFrom = "*.log\0";
FileOp.fFlags = FOF_FILESONLY | FOF_NO_UI;
SHFileOperation(&FileOp);
于 2013-04-27T08:42:28.537 回答
1
尝试这个:
::system("del *.log > nul")
于 2013-04-27T08:32:51.823 回答