Ich bin gerade auf die folgende Frage in Unix Programming Environment gestoßen , dem klassischen Buch von Kernighan und Pike über Unix (ich fand den folgenden Text auf S. 79 der Ausgabe von 1984, ISBN: 0-13-937699-2):
Übung 3-6. (Trickfrage) Wie bekommt man ein / in einen Dateinamen (dh ein /, das keine Bestandteile des Pfades trennt?
Ich arbeite seit Jahren mit Linux, sowohl als Endbenutzer als auch als Programmierer, aber ich kann diese Frage nicht beantworten. Es gibt keine Möglichkeit , Schrägstriche in Dateinamen einzufügen, dies ist vom Kernel absolut verboten. Sie können Ihr Dateisystem über den Zugriff auf Blockgeräte patchen oder ähnlich aussehende Unicode-Zeichen verwenden, dies sind jedoch keine Lösungen.
Ich verstehe, dass Linux ≠ Unix, aber das gleiche Prinzip sollte gelten, da das System in der Lage sein muss, Verzeichnishierarchie eindeutig aus Pfaden zu extrahieren.
Weiß jemand, woran Kernighan und Pike genau dachten, als sie diese Fragen stellten? Was war die angebliche Antwort? Was genau ist der "Trick"? Oder darf sich das originale Unix-System diesem Schrägstrich einfach irgendwie entziehen?
UPD:
Ich habe Brian Kernighan wegen der Frage kontaktiert und er antwortete:
Die Antwort lautet (oder lautete) "Sie können nicht."
Somit hatte Timothy Martin recht und bekommt das grüne Häkchen.
a
und Ihr System dazu zwingen, sich das Dateisystem in einem EBCDIC-Gebietsschema vorzustellen? ASCII a
ist 0x61, was /
in EBCDIC (Codepage 37)