Contiguous address spaces
Chip Salzenberg
chip at ateng.ateng.com
Fri Oct 14 11:05:24 AEST 1988
Let's get this segment thing straight.
According to peter at ficc.uu.net (Peter da Silva):
>This is a UNIX assumption, not a 'C' one. 'C' works just fine with non-
>contiguous segments *if* the segments can be made large enough for any
>given memory object. 'C' has definite problems with memory objects bigger
>than a segment.
True. Microsoft's solution ("huge") is kludgy, but better than nothing.
>UNIX, however, likes each address space to be contiguous. Look at the
>behaviour of sbrk(), for example.
Sbrk() works just fine on the very segmented '286, thank you very much.
Some *programmers* assume that:
char *p = sbrk(512) + 512;
char *q = sbrk(512);
implies "p == q". It doesn't, and it never did. (Read the man page again.)
>(actually, what /bin/sh does can't be explained in polite company).
Can you say "catch SIGSEGV, call sbrk() and retry"? I knew you could.
--
Chip Salzenberg <chip at ateng.com> or <uunet!ateng!chip>
A T Engineering Me? Speak for my company? Surely you jest!
Beware of programmers carrying screwdrivers.
More information about the Comp.lang.c
mailing list