Quelle est la manière la plus simple d'écrire sur stdout en mode binaire ?

Quelle est la manière la plus simple d'écrire sur stdout en mode binaire ?

Vous pouvez utiliser setmode(fileno(stdout), O_BINARY)

Enveloppez-le dans un ifdef si vous voulez qu'il reste compatible avec Linux.

Voir aussi :https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/setmode?view=vs-2017


Vous pouvez faire quelque chose comme ça (qui est en quelque sorte multiplateforme) :

FILE *const in = fdopen(dup(fileno(stdin)), "rb");
FILE *const out = fdopen(dup(fileno(stdout)), "wb");
/* ... */
fclose(in);
fclose(out);

Ou vous pouvez utiliser write() et read() appels système directement avec fileno(stdin) et fileno(stdout) . Ces appels système fonctionnent à un niveau inférieur et n'effectuent aucune conversion. Mais ils n'ont pas non plus la mémoire tampon que vous obtenez de FILE flux.