2012-10-18 22 views
8

मैं एक साधारण प्रोग्राम लिख रहा हूं जिसमें माता-पिता और बाल प्रक्रिया वैकल्पिक रूप से फ़ाइल में प्रिंट हो रही है। मैंने उपयोगकर्ता परिभाषित सिग्नल का उपयोग करके ऐसा करने में कामयाब रहा है। अब मैं SIGINT सिग्नल को संभालना चाहता हूं। एक बार ctrl-c प्राप्त होता है माता-पिता को बच्चे को समाप्ति संकेत भेजना चाहिए, तो बच्चे को समाप्त करना चाहिए और अंततः माता-पिता को समाप्त करना चाहिए।बाल प्रक्रिया में SIGINT सिग्नल को अनदेखा करें

मेरा सवाल यह है कि, यह काम ठीक से करने के लिए मुझे केवल SIGINT सिग्नल को केवल माता-पिता से और इग्नोर से ही बच्चे से पकड़ना चाहिए। क्या यह सही है? यदि हां ऐसा करने पर कोई संकेत है?

+0

आप इस दिलचस्प हो सकता है: http://www.linuxprogrammingblog.com/all-about-linux-signals –

उत्तर

14

कॉल:

signal(SIGINT, SIG_IGN); 
बच्चे प्रक्रिया है जो बच्चे की प्रक्रिया कर देगा से

SIGINT संकेत ध्यान न दें। man signal से:

यदि स्वभाव SIG_IGN पर सेट है, तो सिग्नल को अनदेखा किया जाता है।

+0

ठीक है मैं SIG_IGN कार्रवाई पता है, लेकिन मुझे लगता है कि अनदेखी करने के लिए एकमात्र संतान चाहते हैं और जब माता-पिता कैच सिग्नल, बच्चे को समाप्त करें। – SpyrosR

+0

@SpyrosR, तो केवल बच्चे को यह कहते हैं? – hmjd

+0

हां.मैंने दो हैंडलिंग फ़ंक्शंस सेट किए हैं, एक सिग्नल को पकड़ने और सिटर को सिग्नल करने के लिए बच्चे को सिटरम सिग्नल भेजना और सिग्नल को अनदेखा करने के लिए बच्चे को एक भेजना है, लेकिन मैं इसे काम नहीं कर सकता। उदाहरण के लिए, ctrl-c दबाएं जबकि बच्चा "काम कर रहा है "यह बच्चे हैंडल फ़ंक्शन को कॉल करता है लेकिन यह सिगिनट सिग्नल के लिए पैरेंट हैंडल फ़ंक्शन भी कॉल करता है। – SpyrosR

संबंधित मुद्दे