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
.\" $FreeBSD$
.\"
.Dd December 1, 2017
.Dd April 17, 2021
.Dt FORK 2
.Os
.Sh NAME
@ -99,6 +99,42 @@ to the parent process, no child process is created, and the global
variable
.Va errno
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
The
.Fn fork