ในรายการสัญญาณที่กำหนดไว้ในระบบ linux มีสัญญาณสองสัญญาณที่ระบุว่าสัญญาณที่ผู้ใช้กำหนด ( SIGUSR1
และSIGUSR2
) สัญญาณอื่น ๆ จะถูกยกหรือจับในสถานการณ์ที่เฉพาะเจาะจง แต่ SIGUSR จะถูกทิ้งไว้เพื่อการใช้งานของผู้ใช้
เหตุใดจึงมีเพียงสองสัญญาณ
ในรายการสัญญาณที่กำหนดไว้ในระบบ linux มีสัญญาณสองสัญญาณที่ระบุว่าสัญญาณที่ผู้ใช้กำหนด ( SIGUSR1
และSIGUSR2
) สัญญาณอื่น ๆ จะถูกยกหรือจับในสถานการณ์ที่เฉพาะเจาะจง แต่ SIGUSR จะถูกทิ้งไว้เพื่อการใช้งานของผู้ใช้
เหตุใดจึงมีเพียงสองสัญญาณ
คำตอบ:
ในอดีต, Unix มีเพียงสองคนนี้สัญญาณ แต่ระบบที่ทันสมัยมีสัญญาณแบบ real-time ...SIGRTMIN
SIGRTMAX
เนื่องจากความหมายที่แปลกประหลาดและไม่สามารถพูดได้ของ API สัญญาณมีเกือบจะไม่มีกรณีการใช้งานที่สัญญาณจะดีกว่ากลไกการสื่อสารอื่น ๆ เช่นท่อ ดังนั้นการจัดสรรหมายเลขสัญญาณใหม่จึงไม่เคยมีความจำเป็น
สัญญาณให้วิธีการสื่อสารแบบดั้งเดิมเท่านั้น โดยเฉพาะอย่างยิ่งไม่มีวิธีแนบข้อมูลใด ๆ กับพวกเขา ผู้รับเท่านั้นที่รู้หมายเลขสัญญาณไม่ใช่ตัวตนของผู้ส่ง สัญญาณจำนวนมากสามารถถูกรวมเข้าเป็นหนึ่งเดียว เมื่อพิจารณาจากข้อ จำกัด เหล่านี้มันไม่มีจุดประสงค์ที่เป็นประโยชน์มากมายสำหรับสัญญาณ
สำหรับวัตถุประสงค์ที่ซับซ้อนยิ่งขึ้นให้ใช้วิธีการที่ซับซ้อนยิ่งขึ้นของการโต้ตอบเช่นไพพ์หรือซ็อกเก็ต