libc: Flush buffers before dealing with file positions
This commit is contained in:
parent
420270ebd4
commit
19b4aa9f81
@ -350,6 +350,8 @@ extern "C"
|
|||||||
|
|
||||||
int fseek(FILE* stream, long offset, int whence)
|
int fseek(FILE* stream, long offset, int whence)
|
||||||
{
|
{
|
||||||
|
fflush(stream);
|
||||||
|
|
||||||
long result = lseek(stream->_fd, offset, whence);
|
long result = lseek(stream->_fd, offset, whence);
|
||||||
if (result < 0) return -1;
|
if (result < 0) return -1;
|
||||||
|
|
||||||
@ -361,11 +363,15 @@ extern "C"
|
|||||||
|
|
||||||
long ftell(FILE* stream)
|
long ftell(FILE* stream)
|
||||||
{
|
{
|
||||||
|
fflush(stream);
|
||||||
|
|
||||||
return lseek(stream->_fd, 0, SEEK_CUR);
|
return lseek(stream->_fd, 0, SEEK_CUR);
|
||||||
}
|
}
|
||||||
|
|
||||||
void rewind(FILE* stream)
|
void rewind(FILE* stream)
|
||||||
{
|
{
|
||||||
|
fflush(stream);
|
||||||
|
|
||||||
lseek(stream->_fd, 0, SEEK_SET);
|
lseek(stream->_fd, 0, SEEK_SET);
|
||||||
|
|
||||||
clearerr(stream);
|
clearerr(stream);
|
||||||
@ -383,6 +389,8 @@ extern "C"
|
|||||||
|
|
||||||
int fsetpos(FILE* stream, const fpos_t* pos)
|
int fsetpos(FILE* stream, const fpos_t* pos)
|
||||||
{
|
{
|
||||||
|
fflush(stream);
|
||||||
|
|
||||||
return fseek(stream, *pos, SEEK_SET);
|
return fseek(stream, *pos, SEEK_SET);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user