- for (;;) {
- debug("openning \"%s\"\n", fifo_name);
- fifo_fd = open(fifo_name, O_WRONLY);
- if (fifo_fd < 0)
- fatal("Failed to open FIFO file: \"%s\". Error: %s\n",
- fifo_name,
- strerror(errno));
- debug("openned. fd: %d\n", fifo_fd);
- t = time(NULL);
- strftime(buf, MAX_LEN, opt_fmt, localtime(&t));
- r = strlen(buf);
- buf[r] = END_OF_MESSAGE;
- for (i = 0; (n = write(fifo_fd, buf + i++, 1)) && r; r--)
- ;
- if (n < 0)
- fatal("Failed to write to %s. Err num: %d, Err msg: %s\n",
- fifo_name,
- errno,
- strerror(errno));
- if (close(fifo_fd) < 0)
- fatal("Failed to close %s. Err num: %d, Err msg: %s\n",
- fifo_name,
- errno,
- strerror(errno));
- fifo_fd = -1;
- debug("closed. fd: %d\n", fifo_fd);
- snooze(&ti);
- }
+ loop(
+ &ti,
+ fifo_name,
+ buf,
+ (SENSOR_FUN_T) get_time,
+ (SENSOR_PARAMS_T) opt_fmt
+ );