git: 258c6d5e9b98 - main - filemon(4): Better error checking in code example
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 01 Aug 2023 14:30:53 UTC
The branch main has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=258c6d5e9b98122e45c23122cccafee6ce2958b9 commit 258c6d5e9b98122e45c23122cccafee6ce2958b9 Author: Pau Amma <pauamma@gundo.com> AuthorDate: 2023-08-01 14:24:44 +0000 Commit: Mitchell Horne <mhorne@FreeBSD.org> CommitDate: 2023-08-01 14:30:38 +0000 filemon(4): Better error checking in code example Discussed with: dim Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D38367 --- share/man/man4/filemon.4 | 15 +++++++++++---- 1 file 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); } }