Last change
on this file since 445 was 444, checked in by coas-nagasima, 4 years ago |
muslのソースコードを追加
|
-
Property svn:eol-style
set to
native
-
Property svn:mime-type
set to
text/x-csrc;charset=UTF-8
|
File size:
883 bytes
|
Line | |
---|
1 | #include "stdio_impl.h"
|
---|
2 |
|
---|
3 | int __fseeko_unlocked(FILE *f, off_t off, int whence)
|
---|
4 | {
|
---|
5 | /* Adjust relative offset for unread data in buffer, if any. */
|
---|
6 | if (whence == SEEK_CUR) off -= f->rend - f->rpos;
|
---|
7 |
|
---|
8 | /* Flush write buffer, and report error on failure. */
|
---|
9 | if (f->wpos > f->wbase) {
|
---|
10 | f->write(f, 0, 0);
|
---|
11 | if (!f->wpos) return -1;
|
---|
12 | }
|
---|
13 |
|
---|
14 | /* Leave writing mode */
|
---|
15 | f->wpos = f->wbase = f->wend = 0;
|
---|
16 |
|
---|
17 | /* Perform the underlying seek. */
|
---|
18 | if (f->seek(f, off, whence) < 0) return -1;
|
---|
19 |
|
---|
20 | /* If seek succeeded, file is seekable and we discard read buffer. */
|
---|
21 | f->rpos = f->rend = 0;
|
---|
22 | f->flags &= ~F_EOF;
|
---|
23 |
|
---|
24 | return 0;
|
---|
25 | }
|
---|
26 |
|
---|
27 | int __fseeko(FILE *f, off_t off, int whence)
|
---|
28 | {
|
---|
29 | int result;
|
---|
30 | FLOCK(f);
|
---|
31 | result = __fseeko_unlocked(f, off, whence);
|
---|
32 | FUNLOCK(f);
|
---|
33 | return result;
|
---|
34 | }
|
---|
35 |
|
---|
36 | int fseek(FILE *f, long off, int whence)
|
---|
37 | {
|
---|
38 | return __fseeko(f, off, whence);
|
---|
39 | }
|
---|
40 |
|
---|
41 | weak_alias(__fseeko, fseeko);
|
---|
42 |
|
---|
43 | LFS64(fseeko);
|
---|
Note:
See
TracBrowser
for help on using the repository browser.