Changeset 8e3498b in mainline for uspace/lib/c/generic/io
- Timestamp:
- 2017-12-04T18:44:24Z (8 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- bde5c04
- Parents:
- 40feeac
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/io/io.c
r40feeac r8e3498b 430 430 static size_t _fread(void *buf, size_t size, size_t nmemb, FILE *stream) 431 431 { 432 int rc; 433 size_t nread; 434 432 435 if (size == 0 || nmemb == 0) 433 436 return 0; 434 437 435 ssize_t rd = vfs_read(stream->fd, &stream->pos, buf, size * nmemb);436 if (r d < 0) {437 errno = r d;438 rc = vfs_read(stream->fd, &stream->pos, buf, size * nmemb, &nread); 439 if (rc != EOK) { 440 errno = rc; 438 441 stream->error = true; 439 rd = 0; 440 } else if (rd == 0) { 442 } else if (nread == 0) { 441 443 stream->eof = true; 442 444 } 443 444 return ( rd / size);445 446 return (nread / size); 445 447 } 446 448 … … 457 459 static size_t _fwrite(const void *buf, size_t size, size_t nmemb, FILE *stream) 458 460 { 461 int rc; 462 size_t nwritten; 463 459 464 if (size == 0 || nmemb == 0) 460 465 return 0; 461 466 462 ssize_t wr;463 467 if (stream->kio) { 464 size_t nwritten; 465 wr = kio_write(buf, size * nmemb, &nwritten); 466 if (wr != EOK) { 468 rc = kio_write(buf, size * nmemb, &nwritten); 469 if (rc != EOK) { 467 470 stream->error = true; 468 wr = 0; 469 } else { 470 wr = nwritten; 471 nwritten = 0; 471 472 } 472 473 } else { 473 wr = vfs_write(stream->fd, &stream->pos, buf, size * nmemb); 474 if (wr < 0) { 475 errno = wr; 474 rc = vfs_write(stream->fd, &stream->pos, buf, size * nmemb, 475 &nwritten); 476 if (rc != EOK) { 477 errno = rc; 476 478 stream->error = true; 477 wr = 0;478 479 } 479 480 } 480 481 481 if ( wr> 0)482 if (nwritten > 0) 482 483 stream->need_sync = true; 483 484 return ( wr/ size);484 485 return (nwritten / size); 485 486 } 486 487 … … 491 492 static void _ffillbuf(FILE *stream) 492 493 { 493 ssize_t rc; 494 int rc; 495 size_t nread; 494 496 495 497 stream->buf_head = stream->buf_tail = stream->buf; 496 498 497 rc = vfs_read(stream->fd, &stream->pos, stream->buf, stream->buf_size); 498 if (rc < 0) { 499 rc = vfs_read(stream->fd, &stream->pos, stream->buf, stream->buf_size, 500 &nread); 501 if (rc != EOK) { 499 502 errno = rc; 500 503 stream->error = true; … … 502 505 } 503 506 504 if ( rc== 0) {507 if (nread == 0) { 505 508 stream->eof = true; 506 509 return; 507 510 } 508 511 509 stream->buf_head += rc;512 stream->buf_head += nread; 510 513 stream->buf_state = _bs_read; 511 514 }
Note:
See TracChangeset
for help on using the changeset viewer.