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
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]);