कोई विचार क्यों सिग्नल हैंडलर अनंत लूप पर जाता है?सिग्नल हैंडलर अनंत लूप क्यों जाता है? - SIGSEGV
यहां कोड है। कृपया मेरी मदद करें।
enter code here
9 void SIGSEGV_handler(int signal)
10 {
11 printf("Segmentation fault caught....\n");
12 printf("Value of instance variable: i = %d\n\n", i);
13 }
16
17 int main()
18 {
19 char *mallocPtr, *callocPtr, *reallocPtr, *memalignPtr, *vallocPtr;
20 struct sigaction sa;
21
22 sa.sa_handler=SIGSEGV_handler;
23 sigaction(SIGSEGV, &sa, NULL);
24
37
38 printf("The segmentation fault handler will be entered for i = 3, 4, 5 and 6\n");
39
40
41 for(i=0; i<7; i++)
42 {
43 printf("i = %d\n",i);
44
45 mallocPtr=(char*)malloc(3);
46 printf("Malloc address : %x\n",mallocPtr);
47 strcpy(mallocPtr, "Hhvhgvghsvxhvshxv");
48 puts(mallocPtr);
क्या यह सिर्फ मुझे है, या आपने पूरे 'लूप' को पोस्ट नहीं किया है? हो सकता है कि आप जिस लाइन को 'i'' कर रहे हों, और मुझे विश्वास है कि आपने इसे वैश्विक रूप से घोषित किया है और यह अकेले – Djole
करने के लिए एक बुरी चीज है, आप सिग्नल हैंडलर में विश्वसनीय रूप से प्रिंटफ का आह्वान नहीं कर सकते हैं। आप SIGSEGV के लिए एक हैंडलर से विश्वसनीय रूप से वापस नहीं आ सकते (आपको इसके बजाय बाहर निकलना चाहिए)। –
नहीं, मैं बाहर नहीं जा सकता .. क्योंकि मेरे मामले में मुझे हैंडलर पर जा रहे अंतराल को पकड़ने की आवश्यकता है (3 से 6 सेकेंड हो सकता है)। – kingsmasher1