ขอโทษที่โพสต์นานมากหลังจากโพสต์ล่าสุดในกระทู้นี้
อีกหนึ่งจุด ไม่ใช่ทุกโปรแกรมที่ทำให้ออกอย่างสง่างาม การขัดข้องและ ctrl-C เป็นต้นจะทำให้โปรแกรมออกจากระบบโดยไม่สามารถควบคุมได้ หากระบบปฏิบัติการของคุณไม่ทำให้ฮีปของคุณเป็นอิสระให้ล้างสแต็กลบตัวแปรคงที่ ฯลฯ ในที่สุดคุณจะทำให้ระบบของคุณพังจากการรั่วไหลของหน่วยความจำหรือแย่ลง
ที่น่าสนใจนอกเหนือจากนี้ล่ม / หยุดทำงานใน Ubuntu และฉันสงสัยว่าระบบปฏิบัติการสมัยใหม่อื่น ๆ ทั้งหมดมีปัญหากับทรัพยากรที่ "จัดการ" ซ็อกเก็ตไฟล์อุปกรณ์ ฯลฯ สามารถ "เปิด" ได้เมื่อโปรแกรมสิ้นสุด / ล่ม นอกจากนี้วิธีปฏิบัติที่ดีในการปิดสิ่งใด ๆ ด้วย "ที่จับ" หรือ "ตัวอธิบาย" ซึ่งเป็นส่วนหนึ่งของการทำความสะอาดของคุณก่อนออกอย่างสง่า
ฉันกำลังพัฒนาโปรแกรมที่ใช้ซ็อกเก็ตอย่างหนัก เมื่อฉันติดอยู่ในแฮงค์ฉันต้อง ctrl-c จากมันดังนั้นการควั่นซ็อกเก็ตของฉัน ฉันเพิ่ม std :: vector เพื่อรวบรวมรายการซ็อกเก็ตที่เปิดทั้งหมดและตัวจัดการ sigaction ที่จับ sigint และ sigterm ตัวจัดการจะเดินรายการและปิดซ็อกเก็ต ฉันวางแผนที่จะสร้างขั้นตอนการล้างข้อมูลที่คล้ายกันเพื่อใช้ก่อนที่จะโยนซึ่งจะนำไปสู่การยุติก่อนกำหนด
ใครสนใจที่จะแสดงความคิดเห็นเกี่ยวกับการออกแบบนี้?