mirror of
git://sourceware.org/git/glibc.git
synced 2024-11-27 03:41:23 +08:00
48a8f83281
libio.h was originally the header for a set of supported GNU extensions, but they have not been maintained as such in many years, they are now standing in the way of improvements to stdio, and we don't think there are any remaining external users. _G_config.h was never intended for public use, but predates the bits convention. Move both of these headers into the bits directory and provide stubs at top level which issue deprecation warnings. The contents of (bits/)libio.h and (bits/)_G_config.h are still exposed to external software via stdio.h; changing that requires more complex surgery than I have time to attempt right now. * libio/libio.h, libio/_G_config.h: New stub headers which issue a deprecation warning and then include <bits/libio.h>, <bits/_G_config.h> respectively. * libio/libio.h: Rename the original version of this file to libio/bits/libio.h. Error out if not included by stdio.h or the stub libio.h. * include/libio.h: Move to include/bits. Forward to libio/bits/libio.h. * sysdeps/generic/_G_config.h: Move to top-level bits/. Error out if not included by bits/libio.h or the stub _G_config.h. * sysdeps/unix/sysv/linux/_G_config.h: Move to sysdeps/unix/sysv/linux/bits. Error out if not included by bits/libio.h or the stub _G_config.h. * libio/stdio.h: Include bits/libio.h, not libio.h. * libio/Makefile: Install bits/libio.h and bits/_G_config.h as well as libio.h and _G_config.h. * csu/init.c, libio/fmemopen.c, libio/iolibio.h, libio/oldfmemopen.c * libio/strfile.h, stdio-common/vfscanf.c * sysdeps/pthread/flockfile.c, sysdeps/pthread/funlockfile.c Include stdio.h, not _G_config.h nor libio.h. * libio/iofgetpos.c: Also rename fgetpos64 out of the way. * libio/iofsetpos.c: Also rename fsetpos64 out of the way. * scripts/check-installed-headers.sh: Skip libio.h and _G_config.h.
97 lines
4.0 KiB
C
97 lines
4.0 KiB
C
#include <stdio.h>
|
|
|
|
/* These emulate stdio functionality, but with a different name
|
|
(_IO_ungetc instead of ungetc), and using _IO_FILE instead of FILE. */
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
extern int _IO_fclose (_IO_FILE*);
|
|
extern int _IO_new_fclose (_IO_FILE*);
|
|
extern int _IO_old_fclose (_IO_FILE*);
|
|
extern _IO_FILE *_IO_fdopen (int, const char*) __THROW;
|
|
libc_hidden_proto (_IO_fdopen)
|
|
extern _IO_FILE *_IO_old_fdopen (int, const char*) __THROW;
|
|
extern _IO_FILE *_IO_new_fdopen (int, const char*) __THROW;
|
|
extern int _IO_fflush (_IO_FILE*);
|
|
libc_hidden_proto (_IO_fflush)
|
|
extern int _IO_fgetpos (_IO_FILE*, _IO_fpos_t*);
|
|
extern int _IO_fgetpos64 (_IO_FILE*, _IO_fpos64_t*);
|
|
extern char* _IO_fgets (char*, int, _IO_FILE*);
|
|
extern _IO_FILE *_IO_fopen (const char*, const char*);
|
|
extern _IO_FILE *_IO_old_fopen (const char*, const char*);
|
|
extern _IO_FILE *_IO_new_fopen (const char*, const char*);
|
|
extern _IO_FILE *_IO_fopen64 (const char*, const char*);
|
|
extern _IO_FILE *__fopen_internal (const char*, const char*, int)
|
|
attribute_hidden;
|
|
extern _IO_FILE *__fopen_maybe_mmap (_IO_FILE *) __THROW attribute_hidden;
|
|
extern int _IO_fprintf (_IO_FILE*, const char*, ...);
|
|
extern int _IO_fputs (const char*, _IO_FILE*);
|
|
libc_hidden_proto (_IO_fputs)
|
|
extern int _IO_fsetpos (_IO_FILE*, const _IO_fpos_t *);
|
|
extern int _IO_fsetpos64 (_IO_FILE*, const _IO_fpos64_t *);
|
|
extern long int _IO_ftell (_IO_FILE*);
|
|
libc_hidden_proto (_IO_ftell)
|
|
extern _IO_size_t _IO_fread (void*, _IO_size_t, _IO_size_t, _IO_FILE*);
|
|
libc_hidden_proto (_IO_fread)
|
|
extern _IO_size_t _IO_fwrite (const void*, _IO_size_t, _IO_size_t, _IO_FILE*);
|
|
libc_hidden_proto (_IO_fwrite)
|
|
extern char* _IO_gets (char*);
|
|
extern void _IO_perror (const char*) __THROW;
|
|
extern int _IO_printf (const char*, ...);
|
|
extern int _IO_puts (const char*);
|
|
extern int _IO_scanf (const char*, ...);
|
|
extern void _IO_setbuffer (_IO_FILE *, char*, _IO_size_t) __THROW;
|
|
libc_hidden_proto (_IO_setbuffer)
|
|
extern int _IO_setvbuf (_IO_FILE*, char*, int, _IO_size_t) __THROW;
|
|
libc_hidden_proto (_IO_setvbuf)
|
|
extern int _IO_sscanf (const char*, const char*, ...) __THROW;
|
|
extern int _IO_sprintf (char *, const char*, ...) __THROW;
|
|
extern int _IO_ungetc (int, _IO_FILE*) __THROW;
|
|
extern int _IO_vsscanf (const char *, const char *, _IO_va_list) __THROW;
|
|
extern int _IO_vsprintf (char*, const char*, _IO_va_list) __THROW;
|
|
libc_hidden_proto (_IO_vsprintf)
|
|
extern int _IO_vswprintf (wchar_t*, _IO_size_t, const wchar_t*, _IO_va_list)
|
|
__THROW;
|
|
|
|
struct obstack;
|
|
extern int _IO_obstack_vprintf (struct obstack *, const char *, _IO_va_list)
|
|
__THROW;
|
|
extern int _IO_obstack_printf (struct obstack *, const char *, ...) __THROW;
|
|
#ifndef _IO_pos_BAD
|
|
#define _IO_pos_BAD ((_IO_off64_t)(-1))
|
|
#endif
|
|
#define _IO_clearerr(FP) ((FP)->_flags &= ~(_IO_ERR_SEEN|_IO_EOF_SEEN))
|
|
#define _IO_fseek(__fp, __offset, __whence) \
|
|
(_IO_seekoff_unlocked (__fp, __offset, __whence, _IOS_INPUT|_IOS_OUTPUT) \
|
|
== _IO_pos_BAD ? EOF : 0)
|
|
#define _IO_rewind(FILE) \
|
|
(void) _IO_seekoff_unlocked (FILE, 0, 0, _IOS_INPUT|_IOS_OUTPUT)
|
|
#define _IO_vprintf(FORMAT, ARGS) \
|
|
_IO_vfprintf (_IO_stdout, FORMAT, ARGS)
|
|
#define _IO_freopen(FILENAME, MODE, FP) \
|
|
(_IO_file_close_it (FP), \
|
|
_IO_file_fopen (FP, FILENAME, MODE, 1))
|
|
#define _IO_old_freopen(FILENAME, MODE, FP) \
|
|
(_IO_old_file_close_it (FP), _IO_old_file_fopen(FP, FILENAME, MODE))
|
|
#define _IO_freopen64(FILENAME, MODE, FP) \
|
|
(_IO_file_close_it (FP), \
|
|
_IO_file_fopen (FP, FILENAME, MODE, 0))
|
|
#define _IO_fileno(FP) ((FP)->_fileno)
|
|
extern _IO_FILE* _IO_popen (const char*, const char*) __THROW;
|
|
extern _IO_FILE* _IO_new_popen (const char*, const char*) __THROW;
|
|
extern _IO_FILE* _IO_old_popen (const char*, const char*) __THROW;
|
|
extern int __new_pclose (_IO_FILE *) __THROW;
|
|
extern int __old_pclose (_IO_FILE *) __THROW;
|
|
#define _IO_pclose _IO_fclose
|
|
#define _IO_setbuf(_FP, _BUF) _IO_setbuffer (_FP, _BUF, _IO_BUFSIZ)
|
|
#define _IO_setlinebuf(_FP) _IO_setvbuf (_FP, NULL, 1, 0)
|
|
|
|
_IO_FILE *__new_freopen (const char *, const char *, _IO_FILE *) __THROW;
|
|
_IO_FILE *__old_freopen (const char *, const char *, _IO_FILE *) __THROW;
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|