คำถามติดแท็ก systems-programming

8
รับขนาดบรรทัดแคชโดยทางโปรแกรมหรือไม่
ยินดีต้อนรับทุกแพลตฟอร์มโปรดระบุแพลตฟอร์มสำหรับคำตอบของคุณ คำถามที่คล้ายกัน: วิธีการรับขนาดหน้าแคช CPU โดยทางโปรแกรมโดยทางโปรแกรม

9
ทำไมต้องใช้ bzero มากกว่า memset?
ในคลาสการเขียนโปรแกรมระบบที่ฉันเอาภาคการศึกษาก่อนหน้านี้เราต้องใช้ไคลเอนต์ / เซิร์ฟเวอร์ขั้นพื้นฐานในซีเมื่อเริ่มต้น structs เช่นsock_addr_inหรือบัฟเฟอร์บัฟเฟอร์ (ที่เราใช้ในการส่งข้อมูลไปมาระหว่างไคลเอนต์และเซิร์ฟเวอร์) อาจารย์ สั่งให้เราใช้เท่านั้นbzeroและไม่memsetเริ่มต้นพวกเขา เขาไม่เคยอธิบายว่าทำไมและฉันอยากรู้ว่ามีเหตุผลที่ถูกต้องสำหรับสิ่งนี้หรือไม่? ฉันดูที่นี่: http://fdiv.net/2009/01/14/memset-vs-bzero-ultimate-showdownที่bzeroมีประสิทธิภาพมากขึ้นเนื่องจากความจริงที่ว่าจะเป็นศูนย์ความจำเท่านั้นดังนั้นมันจึงไม่ ต้องทำการตรวจสอบเพิ่มเติมใด ๆ ที่memsetอาจทำ ที่ยังคงไม่จำเป็นต้องดูเหมือนเหตุผลที่จะไม่ใช้อย่างแน่นอนmemsetสำหรับหน่วยความจำ zeroing bzeroถือว่าเลิกใช้แล้วและไม่ใช่ฟังก์ชัน C มาตรฐาน ตามคู่มือmemsetเป็นที่ต้องการมากกว่าbzeroด้วยเหตุผลนี้ ดังนั้นทำไมคุณยังต้องการใช้bzeroมากกว่าmemset? เพื่อประสิทธิภาพที่เพิ่มขึ้นหรือเป็นอะไรที่มากกว่านี้หรือ ในทำนองเดียวกันสิ่งที่มีประโยชน์memsetมากกว่าbzeroที่ทำให้มันเป็นตัวเลือกที่ต้องการโดยพฤตินัยสำหรับโปรแกรมที่ใหม่กว่า?

7
จะเกิดอะไรขึ้นกับตัวจัดการไฟล์แบบเปิดบน Linux หากไฟล์ปลายแหลมถูกย้ายหรือถูกลบ
จะเกิดอะไรขึ้นกับตัวจัดการไฟล์ที่เปิดอยู่บน Linux หากไฟล์ปลายแหลมได้รับ: ย้ายออกไป -> ที่จับไฟล์ยังคงใช้ได้หรือไม่ ลบ -> สิ่งนี้นำไปสู่ ​​EBADF ซึ่งบ่งชี้ว่าไฟล์จัดการไม่ถูกต้องหรือไม่? แทนที่ด้วยไฟล์ใหม่ -> จัดการไฟล์ที่ชี้ไปที่ไฟล์ใหม่นี้หรือไม่ แทนที่ด้วยฮาร์ดลิงก์ไปยังไฟล์ใหม่ -> ไฟล์ของฉันจัดการ "ตาม" ลิงก์นี้หรือไม่ แทนที่ด้วยซอฟต์ลิงก์ไปยังไฟล์ใหม่ -> ไฟล์ของฉันจัดการกับไฟล์ซอฟต์ลิงก์นี้หรือไม่ ทำไมฉันถึงถามคำถามเช่นนี้: ฉันใช้ฮาร์ดแวร์แบบเสียบปลั๊กไฟ (เช่นอุปกรณ์ USB เป็นต้น) อาจเกิดขึ้นได้ที่อุปกรณ์ (รวมถึง / dev / file) ได้รับการแนบซ้ำโดยผู้ใช้หรือ Gremlin อื่น แนวทางปฏิบัติที่ดีที่สุดในการจัดการกับสิ่งนี้คืออะไร?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.