fxlibc/src/libc/stdio/fgetpos.c

17 lines
290 B
C

#include <stdio.h>
int fgetpos(FILE *fp, fpos_t *pos)
{
if(fp->buf && fp->bufdir == __FILE_BUF_WRITE) {
*pos = fp->fdpos + fp->bufpos;
}
else if(fp->buf && fp->bufdir == __FILE_BUF_READ) {
*pos = fp->fdpos - fp->bufread + fp->bufpos;
}
else {
*pos = fp->fdpos;
}
return 0;
}