发新话题
打印

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

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

发帖时,为什么没有粘贴功能,我实在不想抄大段代码
7 s- D" u0 ?. \' _' s$ `在<<UNIX环境高级编程>>一书中,有关于abort()实现的一段代码/ @5 K  R* R- S+ \9 A- W; L
. S1 J& b" U$ o% Q2 w/ v7 J3 A7 t
1)#include<sys/signal.h>' ?9 _" q2 V* s5 n5 F( }
2)#include<stdio.h>
, B" L# j+ |; {$ {+ E. C, {  C3)#include<stdlib.h>
% W2 \. m# I5 N/ y9 i3 a; K4)#include<unistd.h>
8 \/ h& Q) Q3 [" {; O1 @
6 V. Q- `& Y: I' y! H( }6 d5)void abort(void)
% J- n1 B) @( ^+ _% z: I7 z6 r6){" j9 y* B4 k, a! |2 S. S; [( u  j
7)   sigset_t         mask;
3 A3 Y6 n9 z# Q' J8)   struct sigaction action;0 d3 C4 h  N" y
   $ i* E. r  L# b# [3 l: J
9)   sigaction(SIGABRT, NULL, &action);9 E. V/ M, D3 i& q
10)   if(action.sa_handler==SIG_IGN)
1 M. v' x  O$ e! L  ~11)   {& q( n! p- ^8 Q( |% S- q
12)       action.sa_handler==SIG_DFL;
: ]( n) O$ g$ o9 \4 \$ m13)       sigaction(SIGABRT, &action, NULL);
) w0 u0 h1 Z$ ]% m14)   }/ ?) [: a" K3 s6 J, u( A
  7 S1 A- J8 U5 n3 z% T( `! j
15)   if(action.as_handler==SIG_DFL)
5 n7 O" T- l& ~4 x% M8 J# A; X16)     fflush(NULL);
8 f* g; Y! p% h# f) N% s7 k( X   
/ r( W: a1 Q, b' f& e+ V17)   sigfillset(&mask);
: R" X, b1 B* r$ g* f+ S! O18)   sigdelset(&mask, SIGABRT);: }5 N' x. D" U
19)   sigprocmask(SIG_SETMASK, &mask, NULL);9 X5 o" u% D6 h# `9 z# K
  + {: }! O9 ^* F: ^+ J
20)   kill(getpid(), SIGABRT);
: P. }7 H/ g+ D  v   
1 M% b8 Z2 r8 o   /*if we are here, process caught SIGABRT and return */$ Y$ o% C& r$ \' J6 P; @2 \
21)   fflush(NULL);
' k& {% ?  E1 E: |22)   action.sa_handler=SIG_DFL;
6 p8 U4 y% ~+ D. Y23)   sigaction(SIGABRT, &action, NULL);, W9 O+ N7 N- s0 g( G
24)   sigprocmask(SIG_SETMASK, &mask, NULL);
# d4 ^  m$ {. N: U25)   kill(getpid(), SIGABRT);
# M% q6 M2 }- a' o9 j   9 g* R: _: j- ?# U9 H% k% F( g; i+ W
26)   exit(1); /* this should never be executed...*/
& V8 @; z8 f/ k% `' a# o3 V}
; V0 N5 {; v' M# @" Y8 g2 N* k! q! L  w, h& e
我的问题是:
/ W" f, q, E  a8 n       17,18,29三行代码是不是应该放到开头,如果不,为什么?请高手指教
( Q8 n' w( v5 o' i& V
      

TOP

你说的粘贴是从你的脑袋里粘贴到屏幕上吗?我想现阶段任何操作系统都不行。
3 a/ ?* e  B  f2 \5 v3 n可不可以这种问题你为什么不自己先试试,问问题前先动手可以了解更多的东西不是吗?. {1 ~/ F/ p. ~" P
BTW,29行在哪里?      
上帝说,有问题,找GOOGLE 写程序是很神圣的事情!同样只是装系统,卖菜的大娘会的事情不见得就跟卖菜一样了。

TOP

不知道兄弟指怎么个粘贴法,网页中的任何textarea标签都支持粘贴功能,这是浏览器所带的。# J  S# P  J, W: z( d
  当然,文本模式是否支持,我就不知道了。
7 q" ?: }$ k. p2 W5 x2 z  
3 e: |# T" v# f5 `  抄代码是件正常事情。:p      

TOP

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

TOP

[QUOTE=zhuomingliang]不知道兄弟指怎么个粘贴法,网页中的任何textarea标签都支持粘贴功能,这是浏览器所带的。5 b! E9 |* g+ M+ E' b
  当然,文本模式是否支持,我就不知道了。. ?( ]' z. w# C! x
  3 s% z( I9 u* a. Q1 }6 e: I
  抄代码是件正常事情。:p[/QUOTE]
$ y" X( a: A- o 哦,我用的是Ubuntu下的firefox没有提供右键粘贴,呵呵      

TOP

发新话题