#include <syscall.h>
#include <unistd.h>
-int main()
+int main(int argc, char **argv)
{
siginfo_t *si;
const size_t sz = sizeof(*si);
- fprintf(stderr, "sizeof(*si) = %zu\n", sz);
- fprintf(stderr, "%zd %zd %zd %zd\n",
- offsetof(siginfo_t, si_signo),
- offsetof(siginfo_t, si_errno),
- offsetof(siginfo_t, si_code),
- offsetof(siginfo_t, _sifields)
- );
+ if (argc == 1) {
+ fprintf(stderr, "sizeof(*si) = %zu\n", sz);
+ fprintf(stdout, "offsetof(siginfo_t, si_signo) = %zd\n",
+ offsetof(siginfo_t, si_signo));
+ fprintf(stdout, "offsetof(siginfo_t, si_errno) = %zd\n",
+ offsetof(siginfo_t, si_errno));
+ fprintf(stdout, "offsetof(siginfo_t, si_code) = %zd\n",
+ offsetof(siginfo_t, si_code));
+ fprintf(stdout, "offsetof(siginfo_t, _sifields) = %zd\n",
+ offsetof(siginfo_t, _sifields));
+ }
si = calloc(1, sz);
si->si_signo = SIGWINCH;
si->si_code = SI_QUEUE;