Ho appena incontrato la seguente domanda in Unix Programming Environment , il classico libro di Kernighan e Pike su Unix (ho trovato il testo qui sotto a pagina 79 dell'edizione dell'anno 1984, ISBN: 0-13-937699-2):
Esercizio 3-6. (Domanda a trabocchetto) Come si ottiene un / in un nome di file (ovvero, un / che non separa i componenti del percorso?
Lavoro con Linux da anni, sia come utente finale che come programmatore, ma non posso rispondere a questa domanda. Non c'è modo di inserire barre nei nomi dei file, è assolutamente proibito dal kernel. Puoi patchare il tuo filesystem tramite l'accesso al dispositivo di blocco o usare caratteri simili dall'Unicode, ma quelli non sono soluzioni.
Comprendo che Linux ≠ Unix, ma lo stesso principio dovrebbe applicarsi, poiché il sistema deve essere in grado di estrarre in modo inequivocabile la gerarchia di directory dai percorsi.
Qualcuno sa cosa hanno pensato esattamente Kernighan e Pike quando si ponevano queste domande? Qual era la presunta risposta? Qual è esattamente il 'trucco'? O forse il sistema Unix originale ha semplicemente permesso di sfuggire a questa barra in qualche modo?
UPD:
Ho contattato Brian Kernighan in merito alla domanda ed è quello che ha risposto:
La risposta è (o era) "Non puoi".
Quindi, Timothy Martin aveva ragione e ottiene il segno di spunta verde.
a
e forzare il tuo sistema a pensare che il filesystem sia in una localizzazione EBCDIC? ASCII a
è 0x61, che corrisponde a /
in EBCDIC (code page 37)