- r = strlen(buf);
- buf[r] = END_OF_MESSAGE;
- for (i = 0; (n = write(fd, buf + i++, 1)) && r; r--)
- ;
- if (n < 0)
- switch (errno) {
- case EPIPE:
- error("Broken pipe. Msg buf: %s\n", buf);
- break;
- default:
- fatal(
- "Failed to write to %s. "
- "Err num: %d, Err msg: %s\n",
- fifo_name,
- errno,
- strerror(errno));
- }
- if (close(fd) < 0)
- fatal("Failed to close %s. Err num: %d, Err msg: %s\n",
- fifo_name,
- errno,
- strerror(errno));
- fd = -1;
- debug("closed. fd: %d\n", fd);
- snooze(&ti);