2

一个简单的问题:我正在使用

system("mkdir /some/dest/");

在我的节目中。运行我的程序时如何禁用其在屏幕上的输出,因为如果目录存在,我会得到“mkdir:无法创建目录`/some/dest/':文件存在”

试图跑

system("mkdir /some/dest/ > /dev/null");

但它没有用

谢谢

4

2 回答 2

5

考虑到它mkdir (1)本身只是mkdir (2)系统调用的包装器,从 C 代码创建目录是一种奇怪的方式。

我建议使用mkdir (2).

Ps(2)我的意思man是文档的类别($ man 2 mkdir),这是系统调用的类别。

于 2012-11-01T11:21:47.837 回答
3

有两个流,stdout 和 stderr。您只重定向strout,而不是stderr。

您还需要将 stderr 重定向到 /dev/null ;阅读您的外壳手册。在 bash 我认为你可以这样做:

mkdir /some/dest/ &> /dev/null

这回答了您关于在调用 system() 时如何隐藏错误消息的问题,但来自其他答案的建议(使用本机 C 函数 mkdir)更符合 C/C++ 习惯。

于 2012-11-01T11:20:31.790 回答