makecontext.3: Add text on use of pointer arguments to makecontext()

Passing pointer arguments to makecontext() is possible,
but only on some architectures, and with no guarantees
of portability.

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=504699

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
Reported-by: Paul Evans <leonerd@leonerd.org.uk>
This commit is contained in:
Michael Kerrisk 2008-11-07 20:31:15 -05:00
parent c6ec368541
commit 7acf73dc37
1 changed files with 17 additions and 1 deletions

View File

@ -22,7 +22,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" 2006-08-02, mtk, Added example program
.\"
.TH MAKECONTEXT 3 2008-08-06 "GNU" "Linux Programmer's Manual"
.TH MAKECONTEXT 3 2008-11-07 "GNU" "Linux Programmer's Manual"
.SH NAME
makecontext, swapcontext \- manipulate user context
.SH SYNOPSIS
@ -113,6 +113,22 @@ to be used as the stack, regardless of the direction of growth of
the stack.
Thus, it is not necessary for the user program to
worry about this direction.
On architectures where
.I int
and pointer types are the same size
(e.g., x86-32, where both types are 32 bits),
you may be able to get away with passing pointers as arguments to
.BR makecontext ()
following
.IR argc .
However, doing this is not guaranteed to be portable,
is undefined according to the standards,
and won't work on architectures where pointers are larger than
.IR int s.
Nevertheless, starting with version 2.8 glibc makes some changes to
.BR makecontext (3),
to permit this on some 64-bit architectures (e.g., x86-64).
.SH EXAMPLE
.PP
The example program below demonstrates the use of