Magellan Linux

Diff of /trunk/mkinitrd-magellan/busybox/libbb/full_write.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 815 by niro, Sat Sep 1 22:45:15 2007 UTC revision 816 by niro, Fri Apr 24 18:33:46 2009 UTC
# Line 7  Line 7 
7   * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.   * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
8   */   */
9    
 #include <stdio.h>  
 #include <unistd.h>  
10  #include "libbb.h"  #include "libbb.h"
11    
12  /*  /*
# Line 16  Line 14 
14   * This does multiple writes as necessary.   * This does multiple writes as necessary.
15   * Returns the amount written, or -1 on an error.   * Returns the amount written, or -1 on an error.
16   */   */
17  ssize_t full_write(int fd, const void *buf, size_t len)  ssize_t FAST_FUNC full_write(int fd, const void *buf, size_t len)
18  {  {
19   ssize_t cc;   ssize_t cc;
20   ssize_t total;   ssize_t total;
# Line 26  ssize_t full_write(int fd, const void *b Line 24  ssize_t full_write(int fd, const void *b
24   while (len) {   while (len) {
25   cc = safe_write(fd, buf, len);   cc = safe_write(fd, buf, len);
26    
27   if (cc < 0)   if (cc < 0) {
28     if (total) {
29     /* we already wrote some! */
30     /* user can do another write to know the error code */
31     return total;
32     }
33   return cc; /* write() returns -1 on failure. */   return cc; /* write() returns -1 on failure. */
34     }
35    
36   total += cc;   total += cc;
37   buf = ((const char *)buf) + cc;   buf = ((const char *)buf) + cc;

Legend:
Removed from v.815  
changed lines
  Added in v.816