Posez votre question Signaler

Retour chariot systématique en fin de fichier

flakix - Dernière réponse le 1 févr. 2011 à 12:54
Bonjour,
je viens de m'apercevoir depuis peu que lorsque je crée un fichier texte sous Linux (Ubuntu) un retour chariot est ajouté systématiquement en fin de fichier:
Ex:
- j'écris (avec gedit ou vi) dans le fichier uniquement la lettre 'a'
- je sauvegarde
- lorsque je visualise le fichier (gedit ou vi), je ne vois qu'un seul caractère ('a')
- par contre, lorsque je charge le fichier dans un programme écrit en C (fopen + fgets), je réalise que le fichier contient "a\n"
- de plus, la taille du fichier est de 2 octets ('a' et '\n') alors qu'il ne devrait contenir qu'un seul.
- la seule façon de l'enlever est d'utiliser (entre autres) la commande tr -d sur '\n' (la taille passe alors à 1 octet et le contenu reste bien 'a')
Questions:
- à quoi se doit ce rajout systématique?
- est-il normal?
- y a t-il moyen de le désactiver?
Merci par avance de m'illuminer là dessus.
Flakix
Ubuntu 10
Lire la suite 

Retour chariot systématique en fin de fichier »

5 réponses
Réponse
+1
moins plus
Salut,

Pour vim, édites ton fichier ~/.vimrc (crées-le s'il n'existe pas) et ajoutes-y :

set noendofline binary

;-))
Ajouter un commentaire
Réponse
+1
moins plus
Merci zipe31, c'est déjà une solution!

Mais je reste sur ma faim en ce qui concerne la pertinence de ce mystérieux '\n', invisible et rajouté par défaut...
Je me demande si un paramétrage semblable/fichier de config existe dans gedit (puisqu'il s'agit de l'éditeur texte de base sous Ubuntu).

Flakix
zipe31- 1 févr. 2011 à 12:04
Mais je reste sur ma faim en ce qui concerne la pertinence de ce mystérieux '\n', invisible et rajouté par défaut...
Ben sous Unix c'est le caractère de "fin de ligne " (LF ou \n ). Sous Mac c'est "retour chariot" (CR ou \r) et sous Windows tu as droit à la totale "\r\n" ;-\
zipe31- 1 févr. 2011 à 12:10
Pour gedit essaie de vois dans le menu "Edition" -> "Préférences", onglet "Affichage", s'il n'y a rien qui ressemble à "désactivez le retour à la ligne"...
Ajouter un commentaire
Réponse
+0
moins plus
Bien sûr, le '\n' correspond à la fin de ligne/line feed/LF sous Unix et Linux. Et l'équivalent sous Windows est, comme tu le précises, '\r\n' (CR + LF).

Toujours est-il que l'on peut créer un fichier texte sous Windows sans CRLF. Mais ceci ne semble pas possible -sauf astuce vim- sous Linux qui semble rajouter un invisible '\n' juste avant le EOF. C'est juste ceci qui me perturbe...

Je vérifierai ce soir les options de gedit comme tu le dis. Merci pour ton aide.
Ajouter un commentaire
Ce document intitulé « Retour chariot systématique en fin de fichier » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?