Thread Gemeinsames ungültiges Zeichen für Verzeichnisnamen (17 answers)
Opened by bianca at 2011-12-10 20:30

Dubu
 2011-12-11 14:52
#154775 #154775
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
2011-12-11T12:59:51 topeg
In gewisser weise hast du Recht aber auch nicht ganz. :-)
Manche Dateisysteme ("ältere") interpretieren "\0" falsch (wird als Stringende interpretiert)

Was wahrscheinlich für alle (auch neueren) Systeme gilt, die in C oder verwandten Sprachen programmiert sind, da dort ein Nullbyte das Stringende markiert. "Falsch" würde ich das daher nicht nennen.¹

Quote
und alte Shells haben Probleme wenn "/" im Namen vorkommt. POSIX aber macht diese Einschränkung nicht. (so weit ich weiß)

Ich habe es gerade mal nachgeschaut. POSIX.1-2008 sagt:
Quote
3.170 Filename

A name consisting of 1 to {NAME_MAX} bytes used to name a file. The characters composing the name may be selected from the set of all character values excluding the <slash> character and the null byte. The filenames dot and dot-dot have special meaning. A filename is sometimes referred to as a "pathname component".
(Hervorhebung von mir)

POSIX macht die Einschränkung wohl doch.


¹Aber es ist wichtig im Hinterkopf zu behalten, wenn es um sichere Programmierung geht: In Perl-Strings können Nullbytes enthalten sein, aber wenn diese z.B. an Systemroutinen übergeben werden, ist nach dem ersten Nullbyte Schluss. Beispiel siehe z.B. bei den Perlmonks.

View full thread Gemeinsames ungültiges Zeichen für Verzeichnisnamen