summaryrefslogtreecommitdiffstats
path: root/newlib/libc/unix/pread.c
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/unix/pread.c')
-rw-r--r--newlib/libc/unix/pread.c93
1 files changed, 0 insertions, 93 deletions
diff --git a/newlib/libc/unix/pread.c b/newlib/libc/unix/pread.c
deleted file mode 100644
index 770c3fcf0..000000000
--- a/newlib/libc/unix/pread.c
+++ /dev/null
@@ -1,93 +0,0 @@
-#ifndef _NO_PREAD
-/*
-FUNCTION
-<<pread>>---read a file from specified position
-
-INDEX
- pread
-INDEX
- _pread_r
-
-ANSI_SYNOPSIS
- #include <unistd.h>
- ssize_t pread(int <[fd]>, void *<[buf]>, size_t <[n]>, off_t <[off]>);
- ssize_t _pread_r(struct _reent *<[rptr]>, int <[fd]>,
- void *<[buf]>, size_t <[n]>, off_t <[off]>);
-
-TRAD_SYNOPSIS
- #include <unistd.h>
- ssize_t pread(<[fd]>, <[buf]>, <[n]>, <[off]>)
- int <[fd]>;
- void *<[buf]>;
- size_t <[n]>;
- off_t <[off]>;
-
- ssize_t _pread_r(<[rptr]>, <[fd]>, <[buf]>, <[n]>, <[off]>)
- struct _reent *<[rptr]>;
- int <[fd]>;
- void *<[buf]>;
- size_t <[n]>;
- off_t <[off]>;
-
-DESCRIPTION
-The <<pread>> function is similar to <<read>>. One difference is that
-<<pread>> has an additional parameter <[off]> which is the offset to
-position in the file before reading. The function also differs in that
-the file position is unchanged by the function (i.e. the file position
-is the same before and after a call to <<pread>>).
-
-The <<_pread_r>> function is the same as <<pread>>, only a reentrant
-struct pointer <[rptr]> is provided to preserve reentrancy.
-
-RETURNS
-<<pread>> returns the number of bytes read or <<-1>> if failure occurred.
-
-PORTABILITY
-<<pread>> is non-ANSI and is specified by the Single Unix Specification.
-
-Supporting OS subroutine required: <<read>>, <<lseek>>.
-*/
-
-#include <_ansi.h>
-#include <unistd.h>
-#include <reent.h>
-
-ssize_t
-_DEFUN (_pread_r, (rptr, fd, buf, n, off),
- struct _reent *rptr _AND
- int fd _AND
- _PTR buf _AND
- size_t n _AND
- off_t off)
-{
- off_t cur_pos;
- _READ_WRITE_RETURN_TYPE num_read;
-
- if ((cur_pos = _lseek_r (rptr, fd, 0, SEEK_CUR)) == (off_t)-1)
- return -1;
-
- if (_lseek_r (rptr, fd, off, SEEK_SET) == (off_t)-1)
- return -1;
-
- num_read = _read_r (rptr, fd, buf, n);
-
- if (_lseek_r (rptr, fd, cur_pos, SEEK_SET) == (off_t)-1)
- return -1;
-
- return (ssize_t)num_read;
-}
-
-#ifndef _REENT_ONLY
-
-ssize_t
-_DEFUN (pread, (fd, buf, n, off),
- int fd _AND
- _PTR buf _AND
- size_t n _AND
- off_t off)
-{
- return _pread_r (_REENT, fd, buf, n, off);
-}
-
-#endif /* !_REENT_ONLY */
-#endif /* !_NO_PREAD */