¹ØÓÚ±àºÅ±à³ÌÖÐabort()µÄÎÊÌâ
[font=Georgia]·¢Ìûʱ,ΪʲôûÓÐÕ³Ìù¹¦ÄÜ,ÎÒʵÔÚ²»Ïë³´ó¶Î´úÂëÔÚ<<UNIX»·¾³¸ß¼¶±à³Ì>>Ò»ÊéÖÐ,ÓйØÓÚabort()ʵÏÖµÄÒ»¶Î´úÂë{f$@t6i
1)#include<sys/signal.h> |]u_n8jiIG*u2G0X5{
2)#include<stdio.h>
3)#include<stdlib.h>
4)#include<unistd.h>N @["\v;S
5)void abort(void)
6){JlnVSR
7) sigset_t mask;.r(aW I;?&u
8) struct sigaction action;
WY'n}w)J8O
9) sigaction(SIGABRT, NULL, &action);8IOAj[[7x6P!W
10) if(action.sa_handler==SIG_IGN)LLt0N'J8w
11) {
12) action.sa_handler==SIG_DFL;
13) sigaction(SIGABRT, &action, NULL);o$J2C d\_5X"r9@d
14) },tKa.Cd1q"`S
I(J!C]X,L
15) if(action.as_handler==SIG_DFL)
16) fflush(NULL);
17) sigfillset(&mask);
18) sigdelset(&mask, SIGABRT);
19) sigprocmask(SIG_SETMASK, &mask, NULL);
2H4AO&Y;|
20) kill(getpid(), SIGABRT);7kC8RxI ~
.g%m$G @9v#W
/*if we are here, process caught SIGABRT and return */
21) fflush(NULL);sqs)s^QV
22) action.sa_handler=SIG_DFL;
23) sigaction(SIGABRT, &action, NULL);jY7mk#pC;{
24) sigprocmask(SIG_SETMASK, &mask, NULL);
25) kill(getpid(), SIGABRT);@KP? w
%M%L/by:l;U4{#a&tj
26) exit(1); /* this should never be executed...*/(yUP#c2tt
}!hH/qhy\&cr4i
4E4lQ8L#fr jds H*C
ÎÒµÄÎÊÌâÊÇ: l0Y e@O%M1SF
17,18,29ÈýÐдúÂëÊDz»ÊÇÓ¦¸Ã·Åµ½¿ªÍ·,Èç¹û²»,Ϊʲô?Çë¸ßÊÖÖ¸½Ì,D}.Nt+O} r2I/x
[/font] Äã˵µÄÕ³ÌùÊÇ´ÓÄãµÄÄÔ´üÀïÕ³Ìùµ½ÆÁÄ»ÉÏÂð£¿ÎÒÏëÏÖ½×¶ÎÈκβÙ×÷ϵͳ¶¼²»ÐС£
¿É²»¿ÉÒÔÕâÖÖÎÊÌâÄãΪʲô²»×Ô¼ºÏÈÊÔÊÔ£¬ÎÊÎÊÌâǰÏȶ¯ÊÖ¿ÉÒÔÁ˽â¸ü¶àµÄ¶«Î÷²»ÊÇÂð£¿xY9S~-SQ;@/V
BTW£¬29ÐÐÔÚÄÄÀ ²»ÖªµÀÐÖµÜÖ¸Ôõô¸öÕ³Ìù·¨£¬ÍøÒ³ÖеÄÈκÎtextarea±êÇ©¶¼Ö§³ÖÕ³Ìù¹¦ÄÜ£¬ÕâÊÇä¯ÀÀÆ÷Ëù´øµÄ¡£
µ±È»£¬Îı¾Ä£Ê½ÊÇ·ñÖ§³Ö£¬ÎҾͲ»ÖªµÀÁË¡£2Rg{X D B*Sl$`
0gpkF;B?
³´úÂëÊǼþÕý³£ÊÂÇé¡£:p ²»ºÃÒâ˼,ÊÇд´íÁË,ÊÇ17, 18, 19ÈýÐÐ, [QUOTE=zhuomingliang]²»ÖªµÀÐÖµÜÖ¸Ôõô¸öÕ³Ìù·¨£¬ÍøÒ³ÖеÄÈκÎtextarea±êÇ©¶¼Ö§³ÖÕ³Ìù¹¦ÄÜ£¬ÕâÊÇä¯ÀÀÆ÷Ëù´øµÄ¡£ \xZU Y6j1F1BI3n{
µ±È»£¬Îı¾Ä£Ê½ÊÇ·ñÖ§³Ö£¬ÎҾͲ»ÖªµÀÁË¡£
³´úÂëÊǼþÕý³£ÊÂÇé¡£:p[/QUOTE]2j!c;_aB)N:o;X
Ŷ,ÎÒÓõÄÊÇUbuntuϵÄfirefoxûÓÐÌṩÓÒ¼üÕ³Ìù,ºÇºÇ
Ò³:
[1]