static void *output_thread(void *arg)
{
- size_t lsize = 0;
- char *buffer = NULL;
-
openFileProcess();
int linesRead = 0;
+ char *buffer = NULL;
+ size_t lsize = 0;
+
while (getline(&buffer, &lsize, pipef) != -1) {
- fputs(buffer, data_file_out);
++linesRead;
+ if (fputs(buffer, data_file_out) < 0) {
+ log_error("fputs failed - exiting");
+ break;
+ }
}
+
free(buffer);
if (verbose) {
log_error("output thread exits (%d lines read)", linesRead);
}
+
exit(0);
}
unlink(pname);
}
}
- fflush(data_file_out);
+ if (data_file_out != NULL) {
+ fflush(data_file_out);
+ }
log_error("=== finished ===");
kill(getpid(), SIGKILL);
}