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

S'il y a des fichiers auxquels je n'ai pas accès, un message d'erreur indiquant "permission de fichier refusée" s'affiche. Mais comment détecter cette erreur dans mon programme? J'essayais de tester s'il y a des données dans stderr. Mais cela n'a pas semblé fonctionner.Autorisation de fichier Linux C++ refusée

+2

Ici, vous ne faites que passer le mot «stdout». –

+0

Pourquoi voulez-vous détecter cette erreur? Quel est votre plus grand objectif? – zwol

+0

ls -alR 2> & 1 | myprogram –

Répondre

0

Pour votre problème immédiat, vous n'avez qu'à raccorder la sortie stdout ici. Pour capturer à la fois stdout et stderr, faites ceci:

ls -alR 2>&1 | myprogram 

Voir http://www.gnu.org/software/bash/manual/bashref.html#Pipelines du manuel Bash.

Toutefois, la raison pour laquelle vous souhaitez effectuer cette opération n'est pas claire. Si vous souhaitez par programme faire des choses avec des listes de répertoires, il existe de meilleures façons de le faire que l'analyse de la sortie de ls. Si vous éditez votre question pour décrire votre objectif global, je pourrais être en mesure de donner des conseils plus précis ...

+0

Merci. Je vais jeter un coup d'oeil ici. – user2226125