ฉันเพิ่งพบคำถามต่อไปนี้ในUnix Programming Environmentหนังสือคลาสสิคของ Kernighan และ Pike ใน Unix (ฉันพบข้อความด้านล่างในหน้า 79 ของปี 1984 ฉบับที่ ISBN: 0-13-937699-2):
แบบฝึกหัดที่ 3-6 (คำถามเคล็ดลับ) คุณจะทำให้ a / เป็นชื่อไฟล์ได้อย่างไร (เช่น a / ที่ไม่แยกส่วนประกอบของเส้นทาง)
ฉันทำงานกับ Linux มาหลายปีทั้งในฐานะผู้ใช้และโปรแกรมเมอร์ แต่ฉันไม่สามารถตอบคำถามนี้ได้ นอกจากนี้ไม่มีทางที่จะใส่ทับในชื่อไฟล์ก็ห้ามเด็ดขาดโดย kernel คุณสามารถแก้ไขระบบไฟล์ของคุณผ่านการเข้าถึงอุปกรณ์บล็อกหรือใช้อักขระที่มีลักษณะคล้ายกันจาก Unicode แต่สิ่งเหล่านั้นไม่ใช่วิธีแก้ปัญหา
ฉันเข้าใจว่า Linux ≠ Unix แต่ควรใช้หลักการเดียวกันเนื่องจากระบบจะต้องสามารถแยกลำดับชั้นไดเรกทอรีออกจากเส้นทางได้อย่างไม่น่าสงสัย
มีใครรู้บ้างว่า Kernighan และ Pike คิดอย่างไรเมื่อถามคำถามนี้ คำตอบที่ควรคืออะไร อะไรคือ 'เคล็ดลับ'? หรืออาจเป็นระบบ Unix ดั้งเดิมที่อนุญาตให้หนีเฉือนนี้ได้
UPD:
ฉันติดต่อ Brian Kernighan เกี่ยวกับคำถามและนั่นคือสิ่งที่เขาตอบ:
คำตอบคือ (หรือเคย)“ คุณทำไม่ได้”
ดังนั้นทิโมธีมาร์ตินพูดถูกและได้รับเครื่องหมายสีเขียว
a
และบังคับให้ระบบคิดว่าระบบไฟล์นั้นอยู่ในโลแคล EBCDIC หรือไม่? ASCII a
คือ 0x61 ซึ่งสอดคล้องกับ/
ใน EBCDIC (หน้ารหัส 37)