summaryrefslogtreecommitdiff
path: root/src/tac.c
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>1994-01-09 03:47:21 +0000
committerJim Meyering <jim@meyering.net>1994-01-09 03:47:21 +0000
commit07cd9a8d1563ddc8627f762e67fffae95fd6ab30 (patch)
tree3ea6f2c5b82f78d41db79729b21986848d6e4e3a /src/tac.c
parent4f90578a4f0cdb2e9f708d924dd67e6a5b9cd289 (diff)
downloadcoreutils-07cd9a8d1563ddc8627f762e67fffae95fd6ab30.tar.xz
safe_read and full_write + join patch
Diffstat (limited to 'src/tac.c')
-rw-r--r--src/tac.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/tac.c b/src/tac.c
index b35293f50..c295de444 100644
--- a/src/tac.c
+++ b/src/tac.c
@@ -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 ();