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

Если есть файлы, к которым у меня нет доступа, он выдаст сообщение об ошибке, подобное «отказ в файле». Но как обнаружить эту ошибку в моей программе? Я пытался проверить, есть ли данные в stderr. Но это, похоже, не сработало.Запрещено разрешение файла Linux C++

+2

Вы только являетесь трубопроводом 'stdout' здесь. –

+0

Почему вы хотите обнаружить эту ошибку? Какова ваша большая цель? – zwol

+0

ls -alR 2> & 1 | myprogram –

ответ

0

Для вашей непосредственной проблемы, вы здесь только stdout трубопровода. Для того, чтобы захватить как стандартный вывод и стандартный поток ошибок, сделайте следующее:

ls -alR 2>&1 | myprogram 

См http://www.gnu.org/software/bash/manual/bashref.html#Pipelines из руководства Bash.

Однако непонятно, почему вы хотите это сделать. Если вы хотите программно делать что-то со списками каталогов, есть более эффективные способы сделать это, чем анализировать вывод ls. Если вы отредактируете свой вопрос, чтобы описать свою общую цель, я могу дать более конкретный совет ...

+0

Спасибо. Я посмотрю вокруг. – user2226125

Смежные вопросы