mirror of
git://sourceware.org/git/glibc.git
synced 2025-01-18 12:16:13 +08:00
Update.
* posix/test-vfork.c (main): Improve test to check for correct exit code.
This commit is contained in:
parent
d53afacb55
commit
d48f4d530e
@ -1,5 +1,8 @@
|
|||||||
1999-01-19 Ulrich Drepper <drepper@cygnus.com>
|
1999-01-19 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
|
* posix/test-vfork.c (main): Improve test to check for correct
|
||||||
|
exit code.
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/i386/vfork.S: Rewrite to use clone.
|
* sysdeps/unix/sysv/linux/i386/vfork.S: Rewrite to use clone.
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/bits/sched.h: Define CLONE_VFORK.
|
* sysdeps/unix/sysv/linux/bits/sched.h: Define CLONE_VFORK.
|
||||||
|
@ -6,10 +6,13 @@
|
|||||||
|
|
||||||
void noop (void);
|
void noop (void);
|
||||||
|
|
||||||
|
#define NR 2 /* Exit code of the child. */
|
||||||
|
|
||||||
int
|
int
|
||||||
main (void)
|
main (void)
|
||||||
{
|
{
|
||||||
int pid;
|
pid_t pid;
|
||||||
|
int status;
|
||||||
|
|
||||||
printf ("Before vfork\n");
|
printf ("Before vfork\n");
|
||||||
fflush (stdout);
|
fflush (stdout);
|
||||||
@ -20,12 +23,14 @@ main (void)
|
|||||||
machines where it is stored on the stack, if vfork wasn't
|
machines where it is stored on the stack, if vfork wasn't
|
||||||
implemented correctly, */
|
implemented correctly, */
|
||||||
noop ();
|
noop ();
|
||||||
_exit (2);
|
_exit (NR);
|
||||||
}
|
}
|
||||||
else if (pid < 0)
|
else if (pid < 0)
|
||||||
error (1, errno, "vfork");
|
error (1, errno, "vfork");
|
||||||
printf ("After vfork (parent)\n");
|
printf ("After vfork (parent)\n");
|
||||||
wait (0);
|
if (waitpid (0, &status, 0) != pid
|
||||||
|
|| !WIFEXITED (status) || WEXITSTATUS (NR))
|
||||||
|
exit (1);
|
||||||
exit (0);
|
exit (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user