ไฟล์ต่อซ็อกเก็ตแต่ละไฟล์คืออะไรและอยู่ที่ไหน
"ทุกอย่าง" เป็นการพูดเกินจริง ไม่ใช่นโยบายที่เข้มงวดมันเป็นเพียงวิธีปฏิบัติทั่วไปในการใช้ระบบไฟล์สำหรับส่วนต่อประสานเนื่องจากการเข้าถึงระบบไฟล์มีความหมายเหมือนกันกับการเรียกใช้ระบบ (เช่นระบบไฟล์นั้นเป็นอินเทอร์เฟซกับเคอร์เนลและให้รูปแบบที่สะดวกสำหรับทุกสิ่ง) . ระบบปฏิบัติการอื่นไม่ได้ใช้ประโยชน์จากสิ่งนี้มากนักดังนั้นจึงถือว่าเป็นคุณสมบัติที่แตกต่าง
ดังที่ Hauke Laging กล่าวถึงซ็อกเก็ต "unix local"มีโหนดไฟล์เช่นเดียวกับชื่อ pipes (ดูman fifo
) อย่างไรก็ตามซ็อกเก็ตอินเทอร์เน็ตโปรโตคอล (ใช้สำหรับการสื่อสารเครือข่าย) ไม่ได้ แต่จะเชื่อมโยงใน userspace ด้วยหมายเลขพอร์ตแทน โปรดสังเกตว่าซ็อกเก็ตเซิร์ฟเวอร์บนพอร์ตเดียวเชื่อมต่อไคลเอ็นต์หลายไคลเอ็นต์แต่ละซ็อกเก็ตของตนเอง (ไฟล์ซ็อกเก็ตยูนิกซ์เดียวสามารถใช้วิธีนี้กับเซิร์ฟเวอร์หมายความว่าอาจมีหลายซ็อกเก็ตที่เชื่อมโยงกับที่อยู่ไฟล์เดียวกัน) และในรหัสพวกเขาจะถูกระบุเป็นรายบุคคลผ่านตัวอธิบายไฟล์ตัวเลขแยกต่างหาก
ดังนั้นในแง่นั้นซ็อกเก็ตทั้งหมดเป็นเหมือนไฟล์และมีลิงค์/proc/[pid]/fd/
มา คุณสามารถเรียกreadlink()
ใช้ไอโหนดนี้และรับชื่อไฟล์พิเศษซึ่งใช้ในเครื่องมือบรรทัดคำสั่งเช่นlsof
ฉันเชื่อ fstat()
เช่นเดียวกันคุณจะได้รับข้อมูลเกี่ยวกับซ็อกเก็ตบ่งผ่าน