Changeset 23553
- Timestamp:
- Mar 26, 2009, 9:20:04 AM (17 years ago)
- File:
-
- 1 edited
-
trunk/Ohana/src/libohana/src/IOBufferOps.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/libohana/src/IOBufferOps.c
r17483 r23553 27 27 int ReadtoIOBuffer (IOBuffer *buffer, int fd) { 28 28 29 int Nread, Nfree ;29 int Nread, Nfree, Nwant; 30 30 31 31 if (fd == 0) { … … 34 34 } 35 35 36 // if we run out of space, double Nblock 36 37 Nfree = buffer[0].Nalloc - buffer[0].Nbuffer; 37 38 if (Nfree < buffer[0].Nblock) { … … 44 45 } 45 46 46 Nread = read (fd, &buffer[0].buffer[buffer[0].Nbuffer], buffer[0].Nblock); 47 if (DEBUG) fprintf (stderr, "read IO buffer: (%lx) %d from %d\n", (unsigned long) buffer, Nread, buffer[0].Nblock); 47 // ensure we never read more than space available 48 Nwant = MIN (Nfree, buffer[0].Nblock); 49 Nread = read (fd, &buffer[0].buffer[buffer[0].Nbuffer], Nwant); 50 if (DEBUG) fprintf (stderr, "read IO buffer: (%lx) %d from %d\n", (unsigned long) buffer, Nread, Nwant); 48 51 49 52 /* on success, increase the block size for the next read */
Note:
See TracChangeset
for help on using the changeset viewer.
