Use sigaction(2) instead of sigset(3) for portability

sigset(3) isn't portable.
This code fails to compile on platforms without sigset(3).
Use sigaction(2).

--
largest_file.c: In function 'main':
largest_file.c:75:9: error: implicit declaration of function 'sigset'; did you mean 'sigvec'? [-Werror=implicit-function-declaration]
  (void) sigset(SIGXFSZ, sigxfsz);
         ^~~~~~
         sigvec

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Tomohiro Kusumi <kusumi.tomohiro@gmail.com>
Closes #8593
This commit is contained in:
Tomohiro Kusumi 2019-04-10 01:58:03 +09:00 committed by Brian Behlendorf
parent f0ce0436aa
commit 5b1443c47e

View File

@ -67,12 +67,18 @@ main(int argc, char **argv)
char mybuf[5] = "aaaa\0";
char *testfile;
mode_t mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH;
struct sigaction sa;
if (argc != 2) {
usage(argv[0]);
}
(void) sigset(SIGXFSZ, sigxfsz);
if (sigemptyset(&sa.sa_mask) == -1)
return (errno);
sa.sa_flags = 0;
sa.sa_handler = sigxfsz;
if (sigaction(SIGXFSZ, &sa, NULL) == -1)
return (errno);
testfile = strdup(argv[1]);