ฉันกำลังเขียนไลบรารีสำหรับจัดการสตริงเส้นทาง Unix ในกรณีนี้ฉันต้องเข้าใจบางส่วนที่ไม่ชัดเจนของไวยากรณ์ที่คนส่วนใหญ่ไม่ต้องกังวล
ตัวอย่างเช่นดีที่สุดเท่าที่ฉันสามารถบอกได้ดูเหมือนว่าfoo/bar
และfoo//bar
ทั้งสองชี้ไปยังสถานที่เดียวกัน
นอกจากนี้~
มักจะหมายถึงไดเรกทอรีบ้านของผู้ใช้ แต่ถ้ามันปรากฏขึ้นกลางเส้นทาง? จะเกิดอะไรขึ้น?
คำถามอื่น ๆ ที่คลุมเครือเหล่านี้และอีกหลายโหลต้องตอบถ้าฉันจะเขียนโค้ดที่จัดการทุกกรณีที่เป็นไปได้อย่างถูกต้อง ไม่มีใครรู้ถึงการอ้างอิงที่ชัดเจนซึ่งอธิบายกฎไวยากรณ์ที่แน่นอนสำหรับสิ่งนี้หรือไม่?
(น่าเสียดายที่การค้นหาคำเช่น "Unix path syntax" จะมีหน้าเว็บหลายล้านหน้าที่พูดถึง$PATH
ตัวแปร ... Heck ฉันกำลังดิ้นรนเพื่อหาแท็กที่เหมาะสมสำหรับคำถามนี้!)
~
) จะครอบคลุมในวิธีลินุกซ์จับหลายแยกเส้นทาง (home / ชื่อผู้ใช้ //// /// ไฟล์) สิ่งที่ใกล้เคียงที่สุดกับการอ้างอิงเชิงบรรทัดฐานคือ POSIX หรือสเปค Unix เดียว - ไม่ใช่การอ่านที่ง่าย