aboutsummaryrefslogtreecommitdiff
path: root/share/man/man4
diff options
context:
space:
mode:
authorPau Amma <pauamma@gundo.com>2023-08-01 14:24:44 +0000
committerMitchell Horne <mhorne@FreeBSD.org>2023-08-01 14:30:38 +0000
commit258c6d5e9b98122e45c23122cccafee6ce2958b9 (patch)
treeee9bc75e4b0dc41d82a255ebbf3df5c8030a22be /share/man/man4
parent848ff9bc1b97b04a0b7328ec7079fb031fef452d (diff)
filemon(4): Better error checking in code example
Discussed with: dim Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D38367
Diffstat (limited to 'share/man/man4')
-rw-r--r--share/man/man4/filemon.415
1 files changed, 11 insertions, 4 deletions
diff --git a/share/man/man4/filemon.4 b/share/man/man4/filemon.4
index 9fb2fe10a2ec..b7e7f30133be 100644
--- a/share/man/man4/filemon.4
+++ b/share/man/man4/filemon.4
@@ -31,7 +31,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd February 1, 2022
+.Dd August 1, 2023
.Dt FILEMON 4
.Os
.Sh NAME
@@ -193,12 +193,13 @@ no log entry for the system call.
#include <dev/filemon/filemon.h>
#include <fcntl.h>
#include <err.h>
+#include <errno.h>
#include <unistd.h>
static void
open_filemon(void)
{
- pid_t child;
+ pid_t child, wait_rv;
int fm_fd, fm_log;
if ((fm_fd = open("/dev/filemon", O_RDWR | O_CLOEXEC)) == -1)
@@ -215,8 +216,14 @@ open_filemon(void)
if (ioctl(fm_fd, FILEMON_SET_PID, &child) == -1)
err(1, "Cannot set filemon PID");
/* Do something here. */
- } else {
- wait(&child);
+ } else if (child == -1)
+ err(1, "Cannot fork child");
+ else {
+ while ((wait_rv = wait(&child)) == -1 &&
+ errno == EINTR)
+ ;
+ if (wait_rv == -1)
+ err(1, "cannot wait for child");
close(fm_fd);
}
}