2009-07-01 28 views

Répondre

5

toujours stdout, facilite la conduite à moins, grep il etc.

Si vous affichez le texte d'aide parce qu'il y avait un problème avec l'analyse des arguments de ligne de commande, vous pouvez utiliser stderr.

+0

Eh bien, (s) il a spécifiquement dit "app --help" donc je suppose que "--help" est reconnu comme un argument de ligne de commande. –

+0

Je ne faisais que suggérer un cas où vous pourriez envoyer de l'aide à stderr –

1

Ce n'est pas une erreur, donc je dirais stdout ....

5

Eh bien, il est une demande explicite de l'aide il est donc sortie. Si, pour une raison ou une autre, vous ne pouvez pas afficher l'aide ou si l'utilisateur a mal orthographié "help", alors envoyez-le à error :-)

Les utilisateurs qui savent ce qu'ils font peuvent utiliser le infâme "2>&1" s'ils veulent des erreurs sur la sortie standard.

10

Seules les erreurs vont à stderr. Ce n'est en aucun cas une erreur, il fait exactement ce que l'utilisateur avait à l'esprit, qui est l'information d'utilisation d'impression.

-1

netcat est la seule application que je peux penser qui redirigerait -h à stderr, et je ne peux pas pour la vie de moi pourquoi. Je suppose que si vous publiez les informations d'aide parce que quelqu'un a utilisé des arguments incorrects, vous voudrez peut-être le rediriger vers stderr, mais même personnellement, je n'utiliserais pas stderr car je ne pense pas que les logs d'erreur de spam le texte d'aide est utile - je préfère simplement afficher une seule erreur indiquant que les arguments ont été malformés dans stderr. Si quelqu'un appelle explicitement votre application en utilisant -h ou --help, alors vous ne devriez pas le rediriger vers stderr.