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:
Mateusz Piotrowski 2021-04-17 23:10:48 +02:00
parent d25f7d324a
commit c4207d867c

View File

@ -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