一个简单的问题:我正在使用
system("mkdir /some/dest/");
在我的节目中。运行我的程序时如何禁用其在屏幕上的输出,因为如果目录存在,我会得到“mkdir:无法创建目录`/some/dest/':文件存在”
试图跑
system("mkdir /some/dest/ > /dev/null");
但它没有用
谢谢
考虑到它mkdir (1)
本身只是mkdir (2)
系统调用的包装器,从 C 代码创建目录是一种奇怪的方式。
我建议使用mkdir (2)
.
Ps(2)
我的意思man
是文档的类别($ man 2 mkdir
),这是系统调用的类别。
有两个流,stdout 和 stderr。您只重定向strout,而不是stderr。
您还需要将 stderr 重定向到 /dev/null ;阅读您的外壳手册。在 bash 我认为你可以这样做:
mkdir /some/dest/ &> /dev/null
这回答了您关于在调用 system() 时如何隐藏错误消息的问题,但来自其他答案的建议(使用本机 C 函数 mkdir)更符合 C/C++ 习惯。