[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: fstab



Matthias Houdek wrote:

Wahrscheinlich wird die fstab zeilenweise bis EOT eingelesen und abgearbeitet. Und die Zeile mit EOT bricht die Bearbeitung ab, wird dann also nicht mehr abgearbeitet. So muss das EOT in eine letzte Leerzeile. Ist halt so.

Das Problem ist altbekannt :-) Und ich bestehe in meinen Programmen auch darauf, dass die letzte Zeile in einer eingelesenen Datei mit dem Zeilenendetrenner (LF bzw. CRLF) aufhoert - das EOF Zeichen wird hingegen relativ selten verwendet (oder interpretiert).

Beispiel: die Datei test enthaelt nur das Wort test und test2 zusaetzlich ein LF, allein bei einem cat sieht man den Effekt:

ifjke@nas2:~# cat test
testifjke@nas2:~# cat test2
test
ifjke@nas2:~#

Wozu das wichtig ist? Nunja, ich lese in meinen Programmen oft zeilenweise ein, und im ersten Fall hat die Datei gar keine 'echte' Zeile. Ok, man kann natuerlich hingehen und die Routine so schreiben, dass sie nicht heisst, lese bis zum Zeilenende oder EOF, je nachdem was frueher eintritt. Macht man es nicht, fallen einem kaputte Dateien eher auf, die z.B. nicht vollstaendig gespeichert oder kopiert wurden, weil eben das Zeilenende fehlt :-)

Viele Editoren (vi beispielsweise bei mir) fuegen das LF so oder so an :-)

Cheers,
Jan





Reply to: