Changeset 1678
- Timestamp:
- Jan 16, 2007, 3:21:28 PM (16 years ago)
- Location:
- zzuf/trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
zzuf/trunk/AUTHORS
r1676 r1678 6 6 other contributors: 7 7 Rémi Denis-Courmont <rdenis#simphalempin:com> (readv support) 8 Clément Stenac <zorglub#diwi:org> (pread support) 8 9 -
zzuf/trunk/doc/zzuf.1
r1676 r1678 318 318 .TP 319 319 Unix file descriptor handling: 320 \fBopen\fR(), \fBlseek\fR(), \fBread\fR(), \f readv\fR(), \fBaccept\fR(),321 \fB socket\fR(), \fBclose\fR()320 \fBopen\fR(), \fBlseek\fR(), \fBread\fR(), \fBreadv\fR(), \fBpread\fR(), 321 \fBaccept\fR(), \fBsocket\fR(), \fBclose\fR() 322 322 .TP 323 323 Standard IO streams: -
zzuf/trunk/src/load-fd.c
r1677 r1678 3 3 * Copyright (c) 2006, 2007 Sam Hocevar <sam@zoy.org> 4 4 * 2007 Rémi Denis-Courmont <rdenis#simphalempin:com> 5 * 2007 Clément Stenac <zorglub#diwi:org> 5 6 * All Rights Reserved 6 7 * … … 63 64 static ssize_t (*read_orig) (int fd, void *buf, size_t count); 64 65 static ssize_t (*readv_orig) (int fd, const struct iovec *iov, int count); 66 static ssize_t (*pread_orig) (int fd, void *buf, size_t count, off_t offset); 65 67 static off_t (*lseek_orig) (int fd, off_t offset, int whence); 66 68 #ifdef HAVE_LSEEK64 … … 79 81 LOADSYM(socket); 80 82 LOADSYM(read); 83 LOADSYM(readv); 84 LOADSYM(pread); 81 85 LOADSYM(lseek); 82 86 #ifdef HAVE_LSEEK64 … … 238 242 } 239 243 244 ssize_t pread(int fd, void *buf, size_t count, off_t offset) 245 { 246 int ret; 247 248 LOADSYM(pread); 249 ret = pread_orig(fd, buf, count, offset); 250 if(!_zz_ready || !_zz_iswatched(fd) || _zz_disabled) 251 return ret; 252 253 if(ret > 0) 254 { 255 long int curoff = _zz_getpos(fd); 256 char *b = buf; 257 258 _zz_setpos(fd, offset); 259 _zz_fuzz(fd, buf, ret); 260 _zz_setpos(fd, curoff); 261 262 if(ret >= 4) 263 debug("pread(%i, %p, %li, %li) = %i \"%c%c%c%c...", fd, buf, 264 (long int)count, (long int)offset, ret, 265 b[0], b[1], b[2], b[3]); 266 else 267 debug("pread(%i, %p, %li, %li) = %i \"%c...", fd, buf, 268 (long int)count, (long int)offset, ret, b[0]); 269 } 270 else 271 debug("pread(%i, %p, %li, %li) = %i", fd, buf, 272 (long int)count, (long int)offset, ret); 273 274 return ret; 275 } 276 240 277 #define LSEEK(fn, off_t) \ 241 278 do \
Note: See TracChangeset
for help on using the changeset viewer.