Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 13 Jan 2000 14:36:19 +0200
From:      Giorgos Keramidas <charon@hades.hell.gr>
To:        Mikhail Evstiounin <evstiounin@adelphia.net>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: Giving a sighandler more information
Message-ID:  <20000113143619.A2590@hades.hell.gr>
In-Reply-To: <00a201bf5d70$fb0cbea0$fc353018@evstiouninadelphia.net.pit.adelphia.net>
References:  <00a201bf5d70$fb0cbea0$fc353018@evstiouninadelphia.net.pit.adelphia.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Jan 12, 2000 at 09:50:41PM -0500, Mikhail Evstiounin wrote:
> 
> -----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.

In fact in most Unix incarnations that I've worked with so far, the
size of `int' is the same as the size of `long'.  However, `long' has
the size of the longest value that can be stored in a word on a given
architecture, and this is usually just the right size for storing
pointers ;)

> 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?

GNU cc is a different compiler than those usually shipped from the so
called `vendors'.

It is not 100% ANSI compliant either, but those few features that are
not ANSI-safe can be turned off with an option.  To qquote the GCC
manuals, one can use -ansi to "turn off certain features of GNU C that
are incompatible with ANSI C, such as `asm', `inline' and `typeof'
keywords".

For even stricter ANSI support, the use of -pedantic will "cause
non-ANSI programs to be rejected gratuitously".

-- 
Giorgos Keramidas, < keramida @ ceid . upatras . gr >
"What we have to learn to do, we learn by doing." [Aristotle]


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?20000113143619.A2590>