system_data_types(7) Miscellaneous Information Manual system_data_types(7) system_data_types - siginfo_t : . . typedef struct { int si_signo; /* Signal number */ int si_code; /* Signal code */ pid_t si_pid; /* Sending process ID */ uid_t si_uid; /* Real user ID of sending process */ void *si_addr; /* Memory location which caused fault */ int si_status; /* Exit value or signal */ union sigval si_value; /* Signal value */ } siginfo_t; . ( ) sigaction(2). : POSIX.1-2001 . : pidfd_send_signal(2), rt_sigqueueinfo(2), sigaction(2), sigwaitinfo(2), psiginfo(3) sigset_t : . . . POSIX . : POSIX.1-2001 . : epoll_pwait(2), ppoll(2), pselect(2), sigaction(2), signalfd(2), sigpending(2), sigprocmask(2), sigsuspend(2), sigwaitinfo(2), signal(7) . printf(3) scanf(3). intmax_t uintmax_t . intmax_t uintmax_t. . . . " " C99 POSIX.1-2001 . . "" () "" C POSIX.1. " " . . intmax_t . #include #include #include #include int main (void) { static const char *const str = "500000 us in half a second"; suseconds_t us; intmax_t tmp; /* Scan the number from the string into the temporary variable. */ sscanf(str, "%jd", &tmp); /* Check that the value is within the valid range of suseconds_t. */ if (tmp < -1 || tmp > 1000000) { fprintf(stderr, "Scanned value outside valid range!\n"); exit(EXIT_FAILURE); } /* Copy the value to the suseconds_t variable 'us'. */ us = tmp; /* Even though suseconds_t can hold the value -1, this isn't a sensible number of microseconds. */ if (us < 0) { fprintf(stderr, "Scanned value shouldn't be negative!\n"); exit(EXIT_FAILURE); } /* Print the value. */ printf("There are %jd microseconds in half a second.\n", (intmax_t) us); exit(EXIT_SUCCESS); } feature_test_macros(7), standards(7) 3 . . : . 6.18 8 2026 system_data_types(7)