Godzil (./16) :
Zero: non c'est un choix de MinGW, comme il est du demi UNIX/POSIX, il utilise les fin de lignes POSIX/UNIX
J'ai pas mémoire que la norme C force les fin de lignes, en tout cas les compilateurs ne sont pas chiant avec ca.
Le type de fin de ligne utilisé par la libc pour les fichiers en mode texte est celui du système natif. Plus précisément, le K&R spécifie :
La bibliothèque peut gérer des flots en mode texte ou des flots binaires, bien que sur certains systèmes, notamment UNIX, ces flots soient identiques. Un flot en mode texte est une suite de lignes ; chaque ligne est constituée de caractères (éventuellement aucun) et se termine par '\n'. Un environnement particulier peut avoir besoin de convertir le flot de texte en une autre représentation, ou vice-versa (par exemple, remplacer les '\n' par des séquences « retour chariot, avance de ligne »).
Donc sous Windows, ce sera CR+LF, même avec MinGW, vu qu'au final les exécutables compilés tournent sous Windows. Si MinGW avait utilisé le standard Unix, ça aurait empêché la compatiblité entre les softs natifs Windows et ceux compilés avec MinGW.
Sous Linux il n'y a pas de conversion, donc pas de différence entre le mode texte et le mode binaire, tout simplement parce que le C a été conçu sous Unix, donc ils ont utilisé la même convention pour le langage que pour le système.