Home | History | Annotate | Download | only in stdio

Lines Matching refs:fp

49 fseeko(FILE *fp, off_t offset, int whence)
64 if ((seekfn = fp->_seek) == NULL) {
73 FLOCKFILE(fp);
82 __sflush(fp); /* may adjust seek offset on append stream */
83 if (fp->_flags & __SOFF)
84 curoff = fp->_offset;
86 curoff = (*seekfn)(fp->_cookie, (fpos_t)0, SEEK_CUR);
88 FUNLOCKFILE(fp);
92 if (fp->_flags & __SRD) {
93 curoff -= fp->_r;
94 if (HASUB(fp))
95 curoff -= fp->_ur;
96 } else if (fp->_flags & __SWR && fp->_p != NULL)
97 curoff += fp->_p - fp->_bf._base;
111 FUNLOCKFILE(fp);
124 if (fp->_bf._base == NULL)
125 __smakebuf(fp);
126 if (fp->_flags & (__SWR | __SRW | __SNBF | __SNPT))
128 if ((fp->_flags & __SOPT) == 0) {
130 fp->_file < 0 || fstat(fp->_file, &st) ||
132 fp->_flags |= __SNPT;
135 fp->_blksize = st.st_blksize;
136 fp->_flags |= __SOPT;
146 if (fstat(fp->_file, &st))
152 if (fp->_flags & __SOFF)
153 curoff = fp->_offset;
155 curoff = (*seekfn)(fp->_cookie, (fpos_t)0, SEEK_CUR);
159 curoff -= fp->_r;
160 if (HASUB(fp))
161 curoff -= fp->_ur;
170 if (HASUB(fp)) {
171 curoff += fp->_r; /* kill off ungetc */
172 n = fp->_up - fp->_bf._base;
174 n += fp->_ur;
176 n = fp->_p - fp->_bf._base;
178 n += fp->_r;
187 if ((fp->_flags & __SMOD) == 0 &&
191 fp->_p = fp->_bf._base + o;
192 fp->_r = n - o;
193 if (HASUB(fp))
194 FREEUB(fp);
195 fp->_flags &= ~__SEOF;
196 FUNLOCKFILE(fp);
208 curoff = target & ~(fp->_blksize - 1);
209 if ((*seekfn)(fp->_cookie, curoff, SEEK_SET) == POS_ERR)
211 fp->_r = 0;
212 fp->_p = fp->_bf._base;
213 if (HASUB(fp))
214 FREEUB(fp);
215 fp->_flags &= ~__SEOF;
218 if (__srefill(fp) || (size_t)fp->_r < n)
220 fp->_p += n;
221 fp->_r -= n;
223 FUNLOCKFILE(fp);
228 * do it. Allow the seek function to change fp->_bf._base.
231 if (__sflush(fp) ||
232 (*seekfn)(fp->_cookie, (fpos_t)offset, whence) == POS_ERR) {
233 FUNLOCKFILE(fp);
237 if (HASUB(fp))
238 FREEUB(fp);
239 fp->_p = fp->_bf._base;
240 fp->_r = 0;
241 /* fp->_w = 0; */ /* unnecessary (I think...) */
242 fp->_flags &= ~__SEOF;
243 FUNLOCKFILE(fp);
254 fseek(FILE *fp, long offset, int whence)
258 return(fseeko(fp, off, whence));