Introduction
Introduction Statistics Contact Development Disclaimer Help
Sync concat() from sbase - ubase - suckless linux base utils
git clone git://git.suckless.org/ubase
Log
Files
Refs
README
LICENSE
---
commit a51858016570713a2aca623645aa3ec2ac1a3d6c
parent 43327506b697598bf565576f9f3a820cc87d79ed
Author: sin <[email protected]>
Date: Sun, 22 Feb 2015 11:08:16 +0000
Sync concat() from sbase
Diffstat:
M libutil/concat.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
---
diff --git a/libutil/concat.c b/libutil/concat.c
@@ -1,6 +1,5 @@
/* See LICENSE file for copyright and license details. */
#include <stdio.h>
-#include <unistd.h>
#include "../text.h"
#include "../util.h"
@@ -9,12 +8,14 @@ void
concat(FILE *fp1, const char *s1, FILE *fp2, const char *s2)
{
char buf[BUFSIZ];
- ssize_t n;
+ size_t n;
- while ((n = read(fileno(fp1), buf, sizeof buf)) > 0) {
- if (write(fileno(fp2), buf, n) != n)
+ while ((n = fread(buf, 1, sizeof(buf), fp1)) > 0) {
+ if (fwrite(buf, 1, n, fp2) != n)
eprintf("%s: write error:", s2);
+ if (feof(fp1))
+ break;
}
- if (n < 0)
+ if (ferror(fp1))
eprintf("%s: read error:", s1);
}
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.