die("Cannot create well known fifo");
}
if ((fifofd = open(fifoname, O_RDWR|O_NONBLOCK)) < 0) // open fifo
- die("Cannot open read only well known fifo");
+ die("Cannot open well known fifo");
epev.data.fd = fifofd; // add fd to epoll
epev.events = EPOLLIN;
if (epoll_ctl(epfd, EPOLL_CTL_ADD, fifofd, &epev))
/*
* Main body: wait something to report
*/
+ printf("FifoReporter starting, pid %i\n", getpid());
while (1) {
if ((n=epoll_wait(epfd, events, MAX_EPOLL_EV, -1)) < 0)
die("error on epoll_wait");
debug("Got %i events\n", n);
- /* loop on eppol events */
+ /* loop on epoll events */
for (i=0; i<n; i++) {
if (events[i].data.fd == sigfd) { // if signalfd ready
printf("Signal received:\n");
continue;
}
printf("Got %s\n", sig_names[siginf.ssi_signo]);
+ printf("From pid %i\n", siginf.ssi_pid);
if(siginf.ssi_signo == SIGINT) { // SIGINT is exit
+ printf("SIGINT means exit\n");
unlink(fifoname);
exit(0);
}
}
buffer[nread] = 0;
if (fputs(buffer, stdout) == EOF)
- die("Errore in scrittura su terminale");
+ die("Error on terminal write");
}
} else { // anything else is an error
printf("epoll activity on unknown %i file descriptor\n",