← Back to team overview

sslug-teknik team mailing list archive

Re: Filnavne, UTF-8 og XFS

 

On Fri, Mar 07, 2003 at 17:45:13 +0100, Jacob Sparre Andersen wrote:

> > "/" (0x2f) er delimiter for katalognavne, dvs at systemet vil blive
> > forvirret og tro der er tale om en sti, hvis "/" var tilladt.
> 
> Det kan jeg skam godt forstå.  Men hvorfor er linieskift så tilladte i 
> filnavne?  De bliver jo brugt til at afslutte kommandoer.  Og mellemrum? 
>   De bliver jo brugt til at adskille kommandolinieargumenter.

Jo men det er fra "shell", og det kan escapes.

"/" er bygget ind i mange systemkald der bruger "path" til filnavn,
f.eks. når du opretter eller åbner et filnavn.
(open(2), fopen(), link(), realpath().....)

       int open(const char *pathname, int flags);
       int open(const char *pathname, int flags, mode_t mode);
       int creat(const char *pathname, mode_t mode);

Det er ikke "filename" men "pathname" der anvendes, og man har 
øjensynlig valgt *ikke* at anvende "\" til at escape "/"
( for så var "\" jo også et specialtegn  ....  )

> 
> > Hvad er det håbløse i konstruktionen? Det er da et fint udtryk for FTAV!
> 
> Det håbløse i konstruktionen er at forskellige brugere - eller samme 
> bruger på forskellige tidspunkter - ser forskellige filnavne.  Det er 
> noget rod.

Tja, man kan jo vælge at se alt som utf-8 og så er det problem løst.


-- 
mvh Frank Damgaard  | 



References