17 lines
290 B
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;
|
||
|
}
|