cerr
est le flux C++ et stderr
est le handle de fichier C, les deux représentant la sortie d'erreur standard.
Vous écrivez à eux la même façon que vous écrivez à d'autres flux et descripteurs de fichiers:
cerr << "Urk!\n";
fprintf (stderr, "Urk!\n");
Je ne suis pas sûr de ce que vous entendez par « récupérer » dans ce contexte, la sortie passe à l'erreur standard et c'est tout. Le programme n'est pas censé s'en préoccuper après cela. Si vous voulez dire comment l'enregistrer pour plus tard, de l'extérieur du programme, voir le paragraphe suivant.
Par défaut, ils vont à votre terminal, mais la sortie peut être redirigée ailleurs avec quelque chose comme:
run_my_prog 2>error.out
Et, oui, la sortie « écran » est un flux (ou descripteur de fichier), mais C'est généralement seulement parce que stdout/cout
et stderr/cerr
sont connectés à votre "écran" par défaut. Redirection affectera cela comme dans le cas suivant où rien ne sera écrit à l'écran:
run_my_prog >/dev/null 2>&1
(choses délicates comme écrire directement à /dev/tty
nonobstant). Cet extrait redirigera à la fois la sortie standard et l'erreur standard pour aller dans le compartiment de bits.
Pas besoin de s'excuser pour avoir posé une question débutante. SO est destiné à tous les niveaux de compétences. – paxdiablo