Merge branch 'maint'
[git] / compat / pread.c
1 #include "../git-compat-util.h"
2
3 ssize_t git_pread(int fd, void *buf, size_t count, off_t offset)
4 {
5         off_t current_offset;
6         ssize_t rc;
7
8         current_offset = lseek(fd, 0, SEEK_CUR);
9
10         if (lseek(fd, offset, SEEK_SET) < 0)
11                 return -1;
12
13         rc = read_in_full(fd, buf, count);
14
15         if (current_offset != lseek(fd, current_offset, SEEK_SET))
16                 return -1;
17         return rc;
18 }