Mettre le résultat d'une commande dans un fichier texte sous linux
Bonjour ,
Je cherche comment mettre le résultat d'une commande dans un fichier texte, et ceci en utilisant un programme en c .
Je cherche comment mettre le résultat d'une commande dans un fichier texte, et ceci en utilisant un programme en c .
1 réponse
-
Bonjour,
Il suffit de faire une redirection. Sache que tout programme peut écrire dans un terminal via deux sorties :
1) la sortie standard (/dev/stdout
) : c'est dans ce flux qu'on écrit généralement les résultats du programme
2) la sortie d'erreur standard (/dev/stderr
) : c'est dans ce flux qu'on écrit généralement les erreurs
Selon le(s) flux à rediriger, tu n'utiliseras pas les mêmes opérateurs.
De plus il faut choisir le comportement qui doit être suivi si le fichier destination existe déjà : faut il écrire à la place (>
) ou à la suite (>>
) de son contenu actuel ?
Cela engendre les opérateurs suivants:-
1>
(généralement noté>
) redirige la sortie standard et remplace le contenu du fichier destination ; -
1>>
(généralement noté>>
) redirige la sortie standard et écirt à la suite du contenu du fichier destination ; -
2>
(généralement noté>
) redirige la sortie d'erreur et remplace le contenu du fichier destination ; -
2>>
(généralement noté>>
) redirige la sortie d'erreur et écirt à la suite du contenu du fichier destination ;
Il est même possible de récupérer les deux flux (voir exemples)
Exemples :
ma_commande > out.txt ma_commande 1> out.txt 2> err.txt ma_commande 2> out_err.txt 1>&2
Il suffit de remplacer dans les exemples ci-dessus ce qui permet d'exécuter ton programme écrit en C (typiquement./mon_executable
si tu es dans le répertoire de ton exécutable).
Bonne chance -