diff options
author | Jim Meyering <jim@meyering.net> | 1994-01-09 03:47:21 +0000 |
---|---|---|
committer | Jim Meyering <jim@meyering.net> | 1994-01-09 03:47:21 +0000 |
commit | 07cd9a8d1563ddc8627f762e67fffae95fd6ab30 (patch) | |
tree | 3ea6f2c5b82f78d41db79729b21986848d6e4e3a /src/tac.c | |
parent | 4f90578a4f0cdb2e9f708d924dd67e6a5b9cd289 (diff) | |
download | coreutils-07cd9a8d1563ddc8627f762e67fffae95fd6ab30.tar.xz |
safe_read and full_write + join patch
Diffstat (limited to 'src/tac.c')
-rw-r--r-- | src/tac.c | 12 |
1 files changed, 7 insertions, 5 deletions
@@ -78,6 +78,8 @@ static void save_stdin (); static void xwrite (); void error (); +int full_write (); +int safe_read (); /* The name this program was run with. */ char *program_name; @@ -382,8 +384,8 @@ save_stdin () error (0, errno, "%s", tempfile); cleanup (); } - while ((bytes_read = read (0, buffer, read_size)) > 0) - if (write (fd, buffer, bytes_read) != bytes_read) + while ((bytes_read = safe_read (0, buffer, read_size)) > 0) + if (full_write (fd, buffer, bytes_read) < 0) { error (0, errno, "%s", tempfile); cleanup (); @@ -466,7 +468,7 @@ tac (fd, file) in the input file. */ lseek (fd, file_pos, SEEK_SET); - if (read (fd, buffer, saved_record_size) != saved_record_size) + if (safe_read (fd, buffer, saved_record_size) != saved_record_size) { error (0, 1, "%s", file); return 1; @@ -562,7 +564,7 @@ tac (fd, file) else match_start = past_end; - if (read (fd, buffer, read_size) != read_size) + if (safe_read (fd, buffer, read_size) != read_size) { error (0, errno, "%s", file); return 1; @@ -640,7 +642,7 @@ xwrite (desc, buffer, size) char *buffer; int size; { - if (write (desc, buffer, size) != size) + if (full_write (desc, buffer, size) < 0) { error (0, errno, "write error"); cleanup (); |