libio.h
来自「此工具是arm-linux-GCC交叉编译工具(cross-3.4.4)」· C头文件 代码 · 共 536 行 · 第 1/2 页
H
536 行
#define _IO_file_flags _flags /* The following pointers correspond to the C++ streambuf protocol. */ /* Note: Tk uses the _IO_read_ptr and _IO_read_end fields directly. */ char* _IO_read_ptr; /* Current read pointer */ char* _IO_read_end; /* End of get area. */ char* _IO_read_base; /* Start of putback+get area. */ char* _IO_write_base; /* Start of put area. */ char* _IO_write_ptr; /* Current put pointer. */ char* _IO_write_end; /* End of put area. */ char* _IO_buf_base; /* Start of reserve area. */ char* _IO_buf_end; /* End of reserve area. */ /* The following fields are used to support backing up and undo. */ char *_IO_save_base; /* Pointer to start of non-current get area. */ char *_IO_backup_base; /* Pointer to first valid character of backup area */ char *_IO_save_end; /* Pointer to end of non-current get area. */ struct _IO_marker *_markers; struct _IO_FILE *_chain; int _fileno;#if 0 int _blksize;#else int _flags2;#endif _IO_off_t _old_offset; /* This used to be _offset but it's too small. */#define __HAVE_COLUMN /* temporary */ /* 1+column number of pbase(); 0 is unknown. */ unsigned short _cur_column; signed char _vtable_offset; char _shortbuf[1]; /* char* _save_gptr; char* _save_egptr; */ _IO_lock_t *_lock;#ifdef _IO_USE_OLD_IO_FILE};struct _IO_FILE_complete{ struct _IO_FILE _file;#endif#if defined _G_IO_IO_FILE_VERSION && _G_IO_IO_FILE_VERSION == 0x20001 _IO_off64_t _offset;# if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T /* Wide character stream stuff. */ struct _IO_codecvt *_codecvt; struct _IO_wide_data *_wide_data;# else void *__pad1; void *__pad2;# endif int _mode; /* Make sure we don't get into trouble again. */ char _unused2[15 * sizeof (int) - 2 * sizeof (void *)];#endif};#ifndef __cplusplustypedef struct _IO_FILE _IO_FILE;#endifstruct _IO_FILE_plus;extern struct _IO_FILE_plus _IO_2_1_stdin_;extern struct _IO_FILE_plus _IO_2_1_stdout_;extern struct _IO_FILE_plus _IO_2_1_stderr_;#ifndef _LIBC#define _IO_stdin ((_IO_FILE*)(&_IO_2_1_stdin_))#define _IO_stdout ((_IO_FILE*)(&_IO_2_1_stdout_))#define _IO_stderr ((_IO_FILE*)(&_IO_2_1_stderr_))#elseextern _IO_FILE *_IO_stdin attribute_hidden;extern _IO_FILE *_IO_stdout attribute_hidden;extern _IO_FILE *_IO_stderr attribute_hidden;#endif/* Functions to do I/O and file management for a stream. *//* Read NBYTES bytes from COOKIE into a buffer pointed to by BUF. Return number of bytes read. */typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);/* Write N bytes pointed to by BUF to COOKIE. Write all N bytes unless there is an error. Return number of bytes written, or -1 if there is an error without writing anything. If the file has been opened for append (__mode.__append set), then set the file pointer to the end of the file and then do the write; if not, just write at the current file pointer. */typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf, size_t __n);/* Move COOKIE's file position to *POS bytes from the beginning of the file (if W is SEEK_SET), the current position (if W is SEEK_CUR), or the end of the file (if W is SEEK_END). Set *POS to the new file position. Returns zero if successful, nonzero if not. */typedef int __io_seek_fn (void *__cookie, _IO_off64_t *__pos, int __w);/* Close COOKIE. */typedef int __io_close_fn (void *__cookie);#ifdef _GNU_SOURCE/* User-visible names for the above. */typedef __io_read_fn cookie_read_function_t;typedef __io_write_fn cookie_write_function_t;typedef __io_seek_fn cookie_seek_function_t;typedef __io_close_fn cookie_close_function_t;/* The structure with the cookie function pointers. */typedef struct{ __io_read_fn *read; /* Read bytes. */ __io_write_fn *write; /* Write bytes. */ __io_seek_fn *seek; /* Seek/tell file position. */ __io_close_fn *close; /* Close file. */} _IO_cookie_io_functions_t;typedef _IO_cookie_io_functions_t cookie_io_functions_t;struct _IO_cookie_file;/* Initialize one of those. */extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write, void *__cookie, _IO_cookie_io_functions_t __fns);#endif#ifdef __cplusplusextern "C" {#endifextern int __underflow (_IO_FILE *) __THROW;extern int __uflow (_IO_FILE *) __THROW;extern int __overflow (_IO_FILE *, int) __THROW;extern _IO_wint_t __wunderflow (_IO_FILE *) __THROW;extern _IO_wint_t __wuflow (_IO_FILE *) __THROW;extern _IO_wint_t __woverflow (_IO_FILE *, _IO_wint_t) __THROW;#if __GNUC__ >= 3# define _IO_BE(expr, res) __builtin_expect (expr, res)#else# define _IO_BE(expr, res) (expr)#endif#define _IO_getc_unlocked(_fp) \ (_IO_BE ((_fp)->_IO_read_ptr >= (_fp)->_IO_read_end, 0) \ ? __uflow (_fp) : *(unsigned char *) (_fp)->_IO_read_ptr++)#define _IO_peekc_unlocked(_fp) \ (_IO_BE ((_fp)->_IO_read_ptr >= (_fp)->_IO_read_end, 0) \ && __underflow (_fp) == EOF ? EOF \ : *(unsigned char *) (_fp)->_IO_read_ptr)#define _IO_putc_unlocked(_ch, _fp) \ (_IO_BE ((_fp)->_IO_write_ptr >= (_fp)->_IO_write_end, 0) \ ? __overflow (_fp, (unsigned char) (_ch)) \ : (unsigned char) (*(_fp)->_IO_write_ptr++ = (_ch)))#define _IO_getwc_unlocked(_fp) \ (_IO_BE ((_fp)->_wide_data->_IO_read_ptr >= (_fp)->_wide_data->_IO_read_end,\ 0) \ ? __wuflow (_fp) : (_IO_wint_t) *(_fp)->_wide_data->_IO_read_ptr++)#define _IO_putwc_unlocked(_wch, _fp) \ (_IO_BE ((_fp)->_wide_data->_IO_write_ptr \ >= (_fp)->_wide_data->_IO_write_end, 0) \ ? __woverflow (_fp, _wch) \ : (_IO_wint_t) (*(_fp)->_wide_data->_IO_write_ptr++ = (_wch)))#define _IO_feof_unlocked(__fp) (((__fp)->_flags & _IO_EOF_SEEN) != 0)#define _IO_ferror_unlocked(__fp) (((__fp)->_flags & _IO_ERR_SEEN) != 0)extern int _IO_getc (_IO_FILE *__fp) __THROW;extern int _IO_putc (int __c, _IO_FILE *__fp) __THROW;extern int _IO_feof (_IO_FILE *__fp) __THROW;extern int _IO_ferror (_IO_FILE *__fp) __THROW;extern int _IO_peekc_locked (_IO_FILE *__fp) __THROW;/* This one is for Emacs. */#define _IO_PENDING_OUTPUT_COUNT(_fp) \ ((_fp)->_IO_write_ptr - (_fp)->_IO_write_base)extern void _IO_flockfile (_IO_FILE *) __THROW;extern void _IO_funlockfile (_IO_FILE *) __THROW;extern int _IO_ftrylockfile (_IO_FILE *) __THROW;#ifdef _IO_MTSAFE_IO# define _IO_peekc(_fp) _IO_peekc_locked (_fp)# define _IO_flockfile(_fp) \ if (((_fp)->_flags & _IO_USER_LOCK) == 0) _IO_flockfile (_fp)# define _IO_funlockfile(_fp) \ if (((_fp)->_flags & _IO_USER_LOCK) == 0) _IO_funlockfile (_fp)#else# define _IO_peekc(_fp) _IO_peekc_unlocked (_fp)# define _IO_flockfile(_fp) /**/# define _IO_funlockfile(_fp) /**/# define _IO_ftrylockfile(_fp) /**/# define _IO_cleanup_region_start(_fct, _fp) /**/# define _IO_cleanup_region_end(_Doit) /**/#endif /* !_IO_MTSAFE_IO */extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict, _IO_va_list, int *__restrict) __THROW;extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict, _IO_va_list) __THROW;extern _IO_ssize_t _IO_padn (_IO_FILE *, int, _IO_ssize_t) __THROW;extern _IO_size_t _IO_sgetn (_IO_FILE *, void *, _IO_size_t) __THROW;extern _IO_off64_t _IO_seekoff (_IO_FILE *, _IO_off64_t, int, int) __THROW;extern _IO_off64_t _IO_seekpos (_IO_FILE *, _IO_off64_t, int) __THROW;extern void _IO_free_backup_area (_IO_FILE *) __THROW;#if defined _LIBC || defined _GLIBCPP_USE_WCHAR_Textern _IO_wint_t _IO_getwc (_IO_FILE *__fp) __THROW;extern _IO_wint_t _IO_putwc (wchar_t __wc, _IO_FILE *__fp) __THROW;extern int _IO_fwide (_IO_FILE *__fp, int __mode) __THROW;# if __GNUC__ >= 2/* While compiling glibc we have to handle compatibility with very old versions. */# if defined _LIBC && defined SHARED# include <shlib-compat.h># if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)# define _IO_fwide_maybe_incompatible \ (__builtin_expect (&_IO_stdin_used == NULL, 0))extern const int _IO_stdin_used;weak_extern (_IO_stdin_used);# endif# endif# ifndef _IO_fwide_maybe_incompatible# define _IO_fwide_maybe_incompatible (0)# endif/* A special optimized version of the function above. It optimizes the case of initializing an unoriented byte stream. */# define _IO_fwide(__fp, __mode) \ ({ int __result = (__mode); \ if (__result < 0 && ! _IO_fwide_maybe_incompatible) \ { \ if ((__fp)->_mode == 0) \ /* We know that all we have to do is to set the flag. */ \ (__fp)->_mode = -1; \ __result = (__fp)->_mode; \ } \ else if (__builtin_constant_p (__mode) && (__mode) == 0) \ __result = _IO_fwide_maybe_incompatible ? -1 : (__fp)->_mode; \ else \ __result = _IO_fwide (__fp, __result); \ __result; })# endifextern int _IO_vfwscanf (_IO_FILE * __restrict, const wchar_t * __restrict, _IO_va_list, int *__restrict) __THROW;extern int _IO_vfwprintf (_IO_FILE *__restrict, const wchar_t *__restrict, _IO_va_list) __THROW;extern _IO_ssize_t _IO_wpadn (_IO_FILE *, wint_t, _IO_ssize_t) __THROW;extern void _IO_free_wbackup_area (_IO_FILE *) __THROW;#endif#ifdef __cplusplus}#endif#endif /* _IO_STDIO_H */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?