ไฟล์ส่วนหัว bits/X (เช่น bits/errno.h) มาจากไหน

ฉันสังเกตเห็นว่าภายใต้ไดเร็กทอรี /usr/include ของฉัน มีโฟลเดอร์ชื่อ bits พร้อมด้วยไฟล์ส่วนหัวจำนวนมาก ไฟล์บางไฟล์เป็น bits/errno.h หรือ bits/in.h

ไฟล์เหล่านี้มาจากไหน? พวกเขาดูไม่เป็นส่วนหนึ่งของ libc เช่น musl ไม่ได้จัดส่งมาพร้อมกับพวกเขา: https://github.com/cloudius-systems/musl/tree/master/include อย่างไรก็ตาม ฉันสังเกตเห็นว่า musl ขึ้นอยู่กับพวกมัน


person Roymunson    schedule 14.09.2020    source แหล่งที่มา
comment
ไม่ซ้ำกันทุกประการ แต่สิ่งนี้อาจช่วยได้   -  person bnaecker    schedule 15.09.2020
comment
จัดทำโดยคอมไพลเลอร์และ/หรือไลบรารี ได้รับการออกแบบมาเพื่อให้ข้อมูลเล็กๆ น้อยๆ ที่อาจจำเป็นสำหรับส่วนหัวอื่นอย่างน้อยหนึ่งรายการ อาจแตกต่างกันไปตามประเภทของระบบ พวกเขาจำกัดการเปลี่ยนแปลงเฉพาะแพลตฟอร์มสำหรับส่วนหัวหลัก โปรแกรมไม่ควรนำไปใช้โดยตรง — โปรแกรมควรมี "header.h" หรือ "sys/header.h" (หรือใช้เครื่องหมายวงเล็บเหลี่ยม <sys/header.h>) ตัวประมวลผลล่วงหน้าเลือกไฟล์ bits/*.h ที่ถูกต้อง   -  person Jonathan Leffler    schedule 15.09.2020


คำตอบ (1)


พวกมันน่าจะเป็นส่วนหนึ่งของ libc(x)-dev (ระบบการตั้งชื่อจะขึ้นอยู่กับ distro ที่คุณเลือก)...

สำหรับตระกูลเดเบียน / อูบุนตูคุณสามารถลองได้

dpk -S /path/to/bits/errno.h

สำหรับครอบครัว RHEL/Centos คุณสามารถลองได้

rpm -qf /path/to/bits/errno.h
person tink    schedule 15.09.2020