1/*- 2 * Copyright (c) 1990, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * Chris Torek. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 20 unchanged lines hidden (view full) --- 29 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 30 * SUCH DAMAGE. 31 */ 32 33#if defined(LIBC_SCCS) && !defined(lint) 34static char sccsid[] = "@(#)freopen.c 8.1 (Berkeley) 6/4/93"; 35#endif /* LIBC_SCCS and not lint */ 36#include <sys/cdefs.h> |
37__FBSDID("$FreeBSD: head/lib/libc/stdio/freopen.c 289863 2015-10-24 02:23:15Z ache $"); |
38 39#include "namespace.h" 40#include <sys/types.h> 41#include <sys/stat.h> 42#include <fcntl.h> 43#include <errno.h> 44#include <limits.h> 45#include <unistd.h> --- 189 unchanged lines hidden (view full) --- 235 /* 236 * When opening in append mode, even though we use O_APPEND, 237 * we need to seek to the end so that ftell() gets the right 238 * answer. If the user then alters the seek pointer, or 239 * the file extends, this will fail, but there is not much 240 * we can do about this. (We could set __SAPP and check in 241 * fseek and ftell.) 242 */ |
243 if (oflags & O_APPEND) { 244 /* XXX: Reuse __SALC for O_APPEND. */ 245 fp->_flags |= __SALC; |
246 (void) _sseek(fp, (fpos_t)0, SEEK_END); |
247 } |
248 FUNLOCKFILE(fp); 249 return (fp); 250} |