Je viens de rencontrer la question suivante dans Unix Programming Environment , le livre classique de Kernighan et Pike sur Unix (j'ai trouvé le texte ci-dessous à la p. 79 de l'édition 1984, ISBN: 0-13-937699-2):
Exercice 3-6.(Question piège) Comment obtenir un / dans un nom de fichier (c'est-à-dire un / qui ne sépare pas les composants du chemin?
Je travaille avec Linux depuis des années, à la fois en tant qu'utilisateur final et programmeur, mais je ne peux pas répondre à cette question. Il y a aucun moyen de mettre des barres obliques dans les noms de fichiers, c'est absolument interdit par le noyau. Vous pouvez patcher votre système de fichiers via l'accès au périphérique de bloc, ou utiliser des caractères d'aspect similaire à partir de l'Unicode, mais ce ne sont pas des solutions.
Je comprends que Linux ≠ Unix, mais le même principe devrait s'appliquer, car le système doit être capable d'extraire sans ambiguïté la hiérarchie des répertoires des chemins.
Quelqu'un sait-il exactement à quoi Kernighan et Pike ont pensé en posant ces questions? Quelle était la supposée réponse? Quel est exactement le «truc»? Ou peut-être que le système Unix original a simplement échappé à cette barre oblique?
UPD:
J'ai contacté Brian Kernighan à propos de la question et c'est ce qu'il a répondu:
La réponse est (ou était) "Vous ne pouvez pas."
Par conséquent, Timothy Martin avait raison et obtient la coche verte.
a
et contraindre votre système à penser que le système de fichiers se trouve dans un environnement local EBCDIC? ASCII a
est 0x61, ce qui correspond à /
EBCDIC (page de codes 37)