-
/dev/null pour tous
Bonsoir,
en langage C, pour faire un mode verbose et quiet d'un programme, j'ai pensé à prendre un stream, pour écrire dessus (pour éviter de faire une condition). Donc si c'est 'verbose', ça écrit sur stdout, sinon c'est '/dev/null'.
Donc moi je suis sur GNU/Linux, y a pas de soucis, mais pour les autres (pour une fois j'y pense, mais plus par curiosité du code).
Comment vous résoudriez ce problème là, ou existe-t-il déjà quelque chose de normé et qui marche sur tout type de système?
Merci d'avance.
-
Bonjour,
Il existe « NUL » sur MS-DOS et sur les Windows qui ont suivi. Mais ça t'oblige quand même à choisir le bon chemin en fonction du système pour lequel tu tournes et, non, il n'y a pas de méthode universelle pour faire cela partout. Tu ne peux même pas garantir que tous les systèmes d'exploitation auront l'équivalent d'un périphérique NUL.
Le plus propre reste quand même de ne pas écrire si tu n'as pas besoin de le faire. Pour cela, tu peux éviter d'utiliser directement fprintf(out,"Message"); mais, à la place, écrire ta propre fonction my_log("Message");. Ça te permettra de faire le test une seule fois au début de ta fonction mais également de la rediriger ailleurs que vers un flux, si nécessaire (par exemple vers le syslog ou vers une base de données).
-
Très bien, noté :ccool:
merci.