[BusyBox-cvs] busybox/libbb safe_write.c, NONE, 1.1 full_write.c, 1.4, 1.5
Erik Andersen
andersen at busybox.net
Thu Oct 9 08:35:45 UTC 2003
Update of /var/cvs/busybox/libbb
In directory winder:/tmp/cvs-serv8450/libbb
Modified Files:
full_write.c
Added Files:
safe_write.c
Log Message:
We did not have a safe_write, which is the analog to safe_read. Convert
full_write to use safe_write internally, which is needed to guarantee proper
behavior, i.e. when writing to a pipe.
--- NEW FILE: safe_write.c ---
/* vi: set sw=4 ts=4: */
/*
* Utility routines.
*
* Copyright (C) 1999-2003 by Erik Andersen <andersen at codepoet.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <stdio.h>
#include <errno.h>
#include <unistd.h>
#include "libbb.h"
ssize_t safe_write(int fd, void *buf, size_t count)
{
ssize_t n;
do {
n = write(fd, buf, count);
} while (n < 0 && errno == EINTR);
return n;
}
/* END CODE */
/*
Local Variables:
c-file-style: "linux"
c-basic-offset: 4
tab-width: 4
End:
*/
Index: full_write.c
===================================================================
RCS file: /var/cvs/busybox/libbb/full_write.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- full_write.c 14 Jul 2003 21:20:55 -0000 1.4
+++ full_write.c 9 Oct 2003 08:35:42 -0000 1.5
@@ -36,7 +36,7 @@
total = 0;
while (len > 0) {
- cc = write(fd, buf, len);
+ cc = safe_write(fd, buf, len);
if (cc < 0)
return cc; /* write() returns -1 on failure. */
More information about the busybox-cvs
mailing list