fork.2: Add a simple use pattern
It seems to be a nice idea to show how fork() is usually used in practice. This may act as a guide to developers who want to quickly recall how to use the fork() function. Reviewed by: bcr, yuripv MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D27626
This commit is contained in:
parent
d25f7d324a
commit
c4207d867c
@ -28,7 +28,7 @@
|
|||||||
.\" @(#)fork.2 8.1 (Berkeley) 6/4/93
|
.\" @(#)fork.2 8.1 (Berkeley) 6/4/93
|
||||||
.\" $FreeBSD$
|
.\" $FreeBSD$
|
||||||
.\"
|
.\"
|
||||||
.Dd December 1, 2017
|
.Dd April 17, 2021
|
||||||
.Dt FORK 2
|
.Dt FORK 2
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
@ -99,6 +99,42 @@ to the parent process, no child process is created, and the global
|
|||||||
variable
|
variable
|
||||||
.Va errno
|
.Va errno
|
||||||
is set to indicate the error.
|
is set to indicate the error.
|
||||||
|
.Sh EXAMPLES
|
||||||
|
The following example shows a common pattern of how
|
||||||
|
.Fn fork
|
||||||
|
is used in practice.
|
||||||
|
.Bd -literal -offset indent
|
||||||
|
#include <err.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
int
|
||||||
|
main(void)
|
||||||
|
{
|
||||||
|
pid_t pid;
|
||||||
|
|
||||||
|
switch (pid = fork()) {
|
||||||
|
case -1:
|
||||||
|
err(1, "Failed to fork");
|
||||||
|
case 0:
|
||||||
|
printf("Hello from child process!\en");
|
||||||
|
exit(0);
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("Hello from parent process (child's PID: %d)!\en", pid);
|
||||||
|
|
||||||
|
return (0);
|
||||||
|
}
|
||||||
|
.Ed
|
||||||
|
.Pp
|
||||||
|
The output of such a program is along the lines of:
|
||||||
|
.Bd -literal -offset indent
|
||||||
|
Hello from parent (child's PID: 27804)!
|
||||||
|
Hello from child process!
|
||||||
|
.Ed
|
||||||
.Sh ERRORS
|
.Sh ERRORS
|
||||||
The
|
The
|
||||||
.Fn fork
|
.Fn fork
|
||||||
|
Loading…
Reference in New Issue
Block a user