koniec suboru

Alexandr Malusek malusek na hroch.ujf.cas.cz
Pátek Březen 5 12:39:05 CET 1999


"Podhajský Andrej" <podhajsk na minv.sk> writes:

> skusil si na konci suboru nechat prazdny riadok ??? teda :
> ... nejaky text<enter>
> I                    <- a na tomto riadku urob save suboru a prec ( sem by
> mal automaticky dat EOF ) nieco podobne som musel urobit aj ja ( config
> file k ISIS )

Aby nedoslo ke zmateni ohledne EOF na konci souboru: Jak jiz bylo
uvedeno, Unix zadny znak EOF na konec souboru neuklada. IMHO konec
souboru se pozna podle velikosti souboru - ta je ulozena v inode
daneho souboru. Pouziti znaku EOF pro oznaceni konce souboru je
ptakovina, kterou pouziva MS-DOS v pripade textovych souboru. V
pripade binarnich souboru MS-DOS EOF (IMHO) take nepouziva, protoze
pak by nebylo mozne pouzit kod odpovidajici znaku EOF napr. uprostred
binarniho souboru (Urcite by se dal vymyslet zpusob, jak obdobu EOF
uprostred souboru "escapovat", ale proc to delat slozite, kdyz to jde
jednoduse ...)

Ale vyse uvedena poznamka je uzitecna, protoze rada zejmena starsich
ne-GNU Unixovych nastroju pro praci s textem predpoklada, ze posledni
radka souboru konci znakem '\n'.

Napriklad na Linuxu:
$ /bin/echo "abc\c" | /bin/sed 's/a/A/g'   # GNU sed - OK
Abc$

a pod Solarisem 2.6:
$ /bin/echo "abc\c" | /bin/sed 's/a/A/g'   # klasicky Solarisi sed -
$                                          # nezafunguje

$ /bin/echo "abc\c" | /usr/xpg4/bin/sed 's/a/A/g'     # XPG4 compliant
sed: Missing newline at end of file standard input.   # Solarisi sed
Abc                                                   # zafunguje, ale
$                                                     # prida '\n', navic
                                                      # vypise varovani

--
A. Malusek  (malusek na ujf.cas.cz)
UJF AV CR


Další informace o konferenci Linux