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