发新话题
打印

关于编号编程中abort()的问题

关于编号编程中abort()的问题

发帖时,为什么没有粘贴功能,我实在不想抄大段代码
! }! t8 x  P2 F) z+ X0 H; k5 g在<<UNIX环境高级编程>>一书中,有关于abort()实现的一段代码
/ a5 X0 A- m; W) o
* y) a& {+ _  h. G3 z2 s1)#include<sys/signal.h>0 j! \5 I' F  p1 [' s+ ~' G
2)#include<stdio.h>+ y9 Q' s+ r( j% X9 U1 F0 R, }
3)#include<stdlib.h>
7 e" k+ r) m# z5 ^1 m  e4)#include<unistd.h>0 |% p6 @; T) Q5 P7 i2 Q- C
4 p1 v$ G7 f! v, g% w
5)void abort(void)
( f7 w; g/ b; ^% z1 X/ E9 z0 X- f6){/ R, ]" @& W  {+ q8 Y  ^7 Z
7)   sigset_t         mask;
: s: s' N' B" B( N9 t, A8)   struct sigaction action;
$ B9 ?3 ?& o4 K# Z  A3 |   
6 F$ ^4 n; `8 e6 l' l9)   sigaction(SIGABRT, NULL, &action);
  a# O, {' p- |5 s' A" q: F10)   if(action.sa_handler==SIG_IGN)
. ?/ h$ Q% ?( ~11)   {
9 W+ t  I! F% t$ _12)       action.sa_handler==SIG_DFL;& D" ]. f* t$ x) Q) ]$ e3 F
13)       sigaction(SIGABRT, &action, NULL);
2 n2 i' V' `8 z1 |) U14)   }  K6 ]% k' I$ R0 H
  8 }9 `' y0 U4 n6 ]' \6 w1 z
15)   if(action.as_handler==SIG_DFL)
- X) q( j$ ?2 S/ b0 r3 U( M+ ~16)     fflush(NULL);- y0 ]# y; O: t0 [/ t( j
     |; Q/ P3 j  ~) r
17)   sigfillset(&mask);
. K6 {6 l6 n0 p) E9 ]" B18)   sigdelset(&mask, SIGABRT);
" X# G1 L6 J& ]19)   sigprocmask(SIG_SETMASK, &mask, NULL);
6 ]1 J5 Q4 z& L; \! f+ i6 A  ( ?# W* p2 y# Q* c* k' k9 o! ^9 {
20)   kill(getpid(), SIGABRT);
5 D0 ^, H$ Q5 Y1 a   
$ T  P; k+ L8 J- r   /*if we are here, process caught SIGABRT and return */. O' H3 ]3 p* r/ [
21)   fflush(NULL);
& F* M" J( j/ _' A0 F22)   action.sa_handler=SIG_DFL;
2 E* }0 G9 y1 x5 k23)   sigaction(SIGABRT, &action, NULL);3 T5 c) E& K" a/ w) E7 S
24)   sigprocmask(SIG_SETMASK, &mask, NULL);
7 |3 ^% {7 C1 q7 U. y25)   kill(getpid(), SIGABRT);
1 ~5 r$ q) s7 T/ f2 w% |   : {$ c& c6 l  ?  |; R0 K
26)   exit(1); /* this should never be executed...*/
$ v$ o6 C! h, m( }2 R}
! l  K- a1 V" w+ N
+ i& E, ]6 g4 Q$ J9 _我的问题是:7 v3 {) w& ~% }" I6 T) L
       17,18,29三行代码是不是应该放到开头,如果不,为什么?请高手指教
1 b2 I5 L1 Y; q
      

TOP

你说的粘贴是从你的脑袋里粘贴到屏幕上吗?我想现阶段任何操作系统都不行。
( ^+ v) g/ z# ]2 A) L可不可以这种问题你为什么不自己先试试,问问题前先动手可以了解更多的东西不是吗?
' y+ t' ?& G& J5 }& E! {( hBTW,29行在哪里?      
上帝说,有问题,找GOOGLE 写程序是很神圣的事情!同样只是装系统,卖菜的大娘会的事情不见得就跟卖菜一样了。

TOP

不知道兄弟指怎么个粘贴法,网页中的任何textarea标签都支持粘贴功能,这是浏览器所带的。
3 A5 t, w" @  @/ z" e  当然,文本模式是否支持,我就不知道了。
, a  Z. W( n3 l* P( W9 D  1 ~1 Y5 D$ O% f8 x1 E5 E
  抄代码是件正常事情。:p      

TOP

不好意思,是写错了,是17, 18, 19三行,      

TOP

[QUOTE=zhuomingliang]不知道兄弟指怎么个粘贴法,网页中的任何textarea标签都支持粘贴功能,这是浏览器所带的。% a! H) W: H$ c" Q
  当然,文本模式是否支持,我就不知道了。
# Y+ p+ T3 w9 p6 {# r) Y  4 k+ g/ E8 d& c6 I
  抄代码是件正常事情。:p[/QUOTE]$ v7 o! G, |# p. U8 W
哦,我用的是Ubuntu下的firefox没有提供右键粘贴,呵呵      

TOP

发新话题