Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 12 Jan 2000 21:50:41 -0500
From:      "Mikhail Evstiounin" <evstiounin@adelphia.net>
To:        <freebsd-questions@FreeBSD.ORG>
Subject:   Re: Giving a sighandler more information
Message-ID:  <00a201bf5d70$fb0cbea0$fc353018@evstiouninadelphia.net.pit.adelphia.net>

next in thread | raw e-mail | index | archive | help

-----Original Message-----
From: Oliver Fromme <olli@dorifer.heim3.tu-clausthal.de>
To: freebsd-questions@FreeBSD.ORG <freebsd-questions@FreeBSD.ORG>
Date: Wednesday, January 12, 2000 9:37 PM
Subject: Re: Giving a sighandler more information


>Laurence Berland <stuyman@confusion.net> wrote in list.freebsd-questions:
> > Followup question: is a sig_atomic_t appropriate to hold the value of a
> > FILE * ?
>
>No.  It is only guaranteed to be large enough to hold an int.
>Of course, on intel PCs, a pointer has the same size as an int,
>but not on other platforms (e.g. the Alpha).  Therefore,
>portable programs cannot store a pointer in a sig_atomic_t.


Sorry, guys, but it requirenments of ANSI that sizeof(void*)==sizeof(int).
Don't get me wrong, I like Alpha, but alpha compiler is not 100% ANSI
compatible. If you take a look at HP aCC and 64 bit architecture - you will
see the same. So, let me rephrase it - in ANSI world you could do it.
and question does it mean that alpha integer is 32 bit, or pointer has more
than 64?
I used GNU C a couple of times there and everything was OK. Is it a special
compiler?

>
>Apart from that:  You can't use a FILE* within a signal handler
>anyway, because most of stdio's functions are not guaranteed to
>be re-entrant.
>
>If you have to do something with a file within a signal
>handler, use the lower-level file handling functions based on
>file descriptors, i.e. open(), read(), write(), close().
>Conveniently, a file descriptor fits in a sig_atomic_t, too.
>
>Please refer to the sigaction(2) manpage, it contains a
>complete list of all functions that are "async-signal safe".
>All other functions are _not_ safe to use from within a signal
>handler.
>
>Regards
>   Oliver
>
>--
>Oliver Fromme, Leibnizstr. 18/61, 38678 Clausthal, Germany
>(Info: finger userinfo:olli@dorifer.heim3.tu-clausthal.de)
>
>"In jedem Stück Kohle wartet ein Diamant auf seine Geburt"
>                                         (Terry Pratchett)
>
>
>To Unsubscribe: send mail to majordomo@FreeBSD.org
>with "unsubscribe freebsd-questions" in the body of the message



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?00a201bf5d70$fb0cbea0$fc353018>