i3-dump-log/main.c: error handling for write(...)

This commit is contained in:
Sascha Kruse 2012-12-10 17:45:14 +01:00 committed by Michael Stapelberg
parent 1a6bddad55
commit 5a567057ab
1 changed files with 7 additions and 2 deletions

View File

@ -42,14 +42,19 @@ static int check_for_wrap(void) {
/* The log wrapped. Print the remaining content and reset walk to the top /* The log wrapped. Print the remaining content and reset walk to the top
* of the log. */ * of the log. */
wrap_count = header->wrap_count; wrap_count = header->wrap_count;
write(STDOUT_FILENO, walk, ((logbuffer + header->offset_last_wrap) - walk)); const int len = (logbuffer + header->offset_last_wrap) - walk;
if (write(STDOUT_FILENO, walk, len) != len)
err(EXIT_FAILURE, "write()");
walk = logbuffer + sizeof(i3_shmlog_header); walk = logbuffer + sizeof(i3_shmlog_header);
return 1; return 1;
} }
static void print_till_end(void) { static void print_till_end(void) {
check_for_wrap(); check_for_wrap();
int n = write(STDOUT_FILENO, walk, ((logbuffer + header->offset_next_write) - walk)); const int len = (logbuffer + header->offset_next_write) - walk;
const int n = write(STDOUT_FILENO, walk, len);
if (len != n)
err(EXIT_FAILURE, "write()");
if (n > 0) { if (n > 0) {
walk += n; walk += n;
} }