从C中的系统调用获取stdout内容而不打印到stdout

时间:2013-09-30 16:36:52

标签: c stdout system-calls

我正在使用字符串变量search进行系统调用,它基本上使用由用户提供的附加变量调用/bin/ls,例如ls file1

我想在标准输出包含错误消息时重复此操作,因为当前目录中不存在输入文件的名称(如果从shell调用命令将产生什么,例如:{{1} })。

但是,以下代码在每次运行时都能正常运行 - 无论文件是否存在 - 它会输出错误或文件名等额外信息。我的结论是因为ls: No such file or directory函数运行并打印到stdout。

如何避免打印系统调用,但仍重复播放?我可以使用系统调用的stdout,抓取它,将其复制到字符串变量,并将其用作开始/结束循环的结果吗?

system(search)

0 个答案:

没有答案