2013-03-30 274 views
0
ls -alR | myprogram 

如果有我无权访问的文件,它会显示一条错误消息,如“文件权限被拒绝”。但是如何在我的程序中检测到这个错误?我试图测试stderr中是否有数据。但这似乎并不奏效。Linux C++文件权限被拒绝

+2

你只是在这里管道'stdout'。 –

+0

你为什么要检测这个错误?你更大的目标是什么? – zwol

+0

ls -alR 2>&1 | myprogram –

回答

0

对于你的直接问题,你只是在这里管道标准输出。同时捕获输出和错误,这样做:

ls -alR 2>&1 | myprogram 

http://www.gnu.org/software/bash/manual/bashref.html#Pipelines从Bash的手册。

但是,目前尚不清楚为什么你想这样做。如果你想以编程方式做目录列表的东西,有比解析ls的输出更好的方法来做到这一点。如果你编辑你的问题来描述你的总体目标,我可能会给出更具体的建议...

+0

谢谢。我会在那里看看。 – user2226125