about summary refs log tree commit diff
path: root/include/unistd.h
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2011-08-12 10:37:12 -0400
committerRich Felker <dalias@aerifal.cx>2011-08-12 10:37:12 -0400
commit4054a135fc0e6c1b7c33f688dcddecee0b2b22d2 (patch)
tree8bb7d6b44fd5b3d2cb41e00b1466a24d0ab42d8f /include/unistd.h
parent407d933052c310ebc5541dae2ecd8c4bd8f55fb9 (diff)
downloadmusl-4054a135fc0e6c1b7c33f688dcddecee0b2b22d2.tar.gz
musl-4054a135fc0e6c1b7c33f688dcddecee0b2b22d2.tar.xz
musl-4054a135fc0e6c1b7c33f688dcddecee0b2b22d2.zip
implement forkall
this is a "nonstandard" function that was "rejected" by POSIX, but
nonetheless had its behavior documented in the POSIX rationale for
fork. it's present on solaris and possibly some other systems, and
duplicates the whole calling process, not just a single thread. glibc
does not have this function. it should not be used in programs
intending to be portable, but may be useful for testing,
checkpointing, etc. and it's an interesting (and quite small) example
of the usefulness of the __synccall framework originally written to
work around deficiencies in linux's setuid syscall.
Diffstat (limited to 'include/unistd.h')
-rw-r--r--include/unistd.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/unistd.h b/include/unistd.h
index a64d99b7..35cfda8c 100644
--- a/include/unistd.h
+++ b/include/unistd.h
@@ -147,6 +147,7 @@ int getdtablesize(void);
 #ifdef _GNU_SOURCE
 int brk(void *);
 void *sbrk(intptr_t);
+pid_t forkall(void);
 pid_t vfork(void);
 int vhangup(void);
 int chroot(const char *);