⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 _stdio_file.h

📁 使用QT为linux 下的mplayer写的一个新的gui
💻 H
📖 第 1 页 / 共 3 页
字号:
inline void _FILE_I_bump(FILE *__f, int __n)
{ __f->_p += __n; __f->_bf._size+=__n; __f->_r -= __n; }
#endif

inline void _FILE_I_set(FILE *__f, char* __begin, char* __next, char* __end) {
  __f->_bf._base = (unsigned char*) __begin;
  __f->_p = (unsigned char*) __next;
  __f->_r = __f->_bf._size = __end - __next;
}
inline char* _FILE_O_begin(const FILE *__f) { return (char*) __f->_bf._base; }
inline char* _FILE_O_next(const FILE *__f) { return (char*) __f->_p; }
inline char* _FILE_O_end(const FILE *__f)
{ return (char*) __f->_p + __f->_w; }

inline ptrdiff_t _FILE_O_avail(const FILE *__f) { return __f->_w; }

#if ( defined(__GNUC__) && defined(__APPLE__) )
inline char& _FILE_O_preincr(FILE *__f)
{ --__f->_w; return *(char*) (++__f->_p); }
inline char& _FILE_O_postincr(FILE *__f)
{ --__f->_w; return *(char*) (__f->_p++); }
inline char& _FILE_O_predecr(FILE *__f)
{ ++__f->_w; return *(char*) (--__f->_p); }
inline char& _FILE_O_postdecr(FILE *__f)
{ ++__f->_w; return *(char*) (__f->_p--); }
inline void _FILE_O_bump(FILE *__f, int __n)
{ __f->_p += __n; __f->_w -= __n; }
#else
inline char& _FILE_O_preincr(FILE *__f)
{ --__f->_w; --__f->_bf._size; return *(char*) (++__f->_p); }
inline char& _FILE_O_postincr(FILE *__f)
{ --__f->_w; --__f->_bf._size; return *(char*) (__f->_p++); }
inline char& _FILE_O_predecr(FILE *__f)
{ ++__f->_w; ++__f->_bf._size; return *(char*) (--__f->_p); }
inline char& _FILE_O_postdecr(FILE *__f)
{ ++__f->_w; ++__f->_bf._size; return *(char*) (__f->_p--); }
inline void _FILE_O_bump(FILE *__f, int __n)
{ __f->_p += __n; __f->_bf._size+=__n; __f->_w -= __n; }
#endif

inline void _FILE_O_set(FILE *__f, char* __begin, char* __next, char* __end) {
  __f->_bf._base = (unsigned char*) __begin;
  __f->_p = (unsigned char*) __next;
  __f->_w = __f->_bf._size = __end - __next;
}

# undef _STLP_FILE_I_O_IDENTICAL

#elif defined(_STLP_USE_UCLIBC) /* should be before _STLP_USE_GLIBC */
inline int   _FILE_fd(const FILE *__f) { return fileno(__CONST_CAST(FILE *,__f)); }
#elif defined(_STLP_USE_GLIBC)

inline int   _FILE_fd(const FILE *__f) { return __f->_fileno; }
inline char* _FILE_I_begin(const FILE *__f) { return __f->_IO_read_base; }
inline char* _FILE_I_next(const FILE *__f)  { return __f->_IO_read_ptr; }
inline char* _FILE_I_end(const FILE *__f)   { return __f->_IO_read_end; }

inline ptrdiff_t _FILE_I_avail(const FILE *__f)
  { return __f->_IO_read_end - __f->_IO_read_ptr; }

inline char& _FILE_I_preincr(FILE *__f)  { return *++__f->_IO_read_ptr; }
inline char& _FILE_I_postincr(FILE *__f) { return *__f->_IO_read_ptr++; }
inline char& _FILE_I_predecr(FILE *__f)  { return *--__f->_IO_read_ptr; }
inline char& _FILE_I_postdecr(FILE *__f) { return *__f->_IO_read_ptr--; }
inline void  _FILE_I_bump(FILE *__f, int __n) { __f->_IO_read_ptr += __n; }

inline void _FILE_I_set(FILE *__f, char* __begin, char* __next, char* __end) {
  __f->_IO_read_base = __begin;
  __f->_IO_read_ptr  = __next;
  __f->_IO_read_end  = __end;
}

inline char* _FILE_O_begin(const FILE *__f) { return __f->_IO_write_base; }
inline char* _FILE_O_next(const FILE *__f)  { return __f->_IO_write_ptr; }
inline char* _FILE_O_end(const FILE *__f)   { return __f->_IO_write_end; }

inline ptrdiff_t _FILE_O_avail(const FILE *__f)
  { return __f->_IO_write_end - __f->_IO_write_ptr; }

inline char& _FILE_O_preincr(FILE *__f)  { return *++__f->_IO_write_ptr; }
inline char& _FILE_O_postincr(FILE *__f) { return *__f->_IO_write_ptr++; }
inline char& _FILE_O_predecr(FILE *__f)  { return *--__f->_IO_write_ptr; }
inline char& _FILE_O_postdecr(FILE *__f) { return *__f->_IO_write_ptr--; }
inline void  _FILE_O_bump(FILE *__f, int __n) { __f->_IO_write_ptr += __n; }

inline void _FILE_O_set(FILE *__f, char* __begin, char* __next, char* __end) {
  __f->_IO_write_base = __begin;
  __f->_IO_write_ptr  = __next;
  __f->_IO_write_end  = __end;

}

#elif defined(__hpux) /* && defined(__hppa) && defined(__HP_aCC)) */

#ifndef _INCLUDE_HPUX_SOURCE
extern "C" unsigned char *__bufendtab[];
#  undef  _bufend
#  define _bufend(__p) \
     (*(((__p)->__flag & _IOEXT)  ? &(((_FILEX *)(__p))->__bufendp)      \
             : &(__bufendtab[(__p) - __iob])))

#  define _bufsiz(__p)  (_bufend(__p) - (__p)->__base)
#endif /* _INCLUDE_HPUX_SOURCE */

#if defined(_STLP_HPACC_BROKEN_BUFEND)
#  undef  _bufend
#  define _bufend(__p) \
     (*(((__p)->__flag & _IOEXT)  ? &((__REINTERPRET_CAST(_FILEX*,(__p)))->__bufendp)  \
                               : &(__bufendtab[__REINTERPRET_CAST(FILE*,(__p)) - __iob])))
#endif

inline int   _FILE_fd(const FILE *__f) { return fileno(__CONST_CAST(FILE *,__f)); }
inline char* _FILE_I_begin(const FILE *__f) { return (__REINTERPRET_CAST(char*, __f->__base)); }
inline char* _FILE_I_next(const FILE *__f)  { return (__REINTERPRET_CAST(char*, __f->__ptr)); }
inline char* _FILE_I_end(const FILE *__f)   { return (__REINTERPRET_CAST(char*, __f->__ptr +__f->__cnt)); }

inline ptrdiff_t _FILE_I_avail(const FILE *__f)  { return __f->__cnt; }

inline char& _FILE_I_preincr(FILE *__f)  { --__f->__cnt; return *__REINTERPRET_CAST(char*, ++__f->__ptr); }
inline char& _FILE_I_postincr(FILE *__f) { --__f->__cnt; return *__REINTERPRET_CAST(char*, __f->__ptr++); }
inline char& _FILE_I_predecr(FILE *__f)  { ++__f->__cnt; return *__REINTERPRET_CAST(char*,--__f->__ptr); }
inline char& _FILE_I_postdecr(FILE *__f) { ++__f->__cnt; return *__REINTERPRET_CAST(char*,__f->__ptr--); }
inline void  _FILE_I_bump(FILE *__f, int __n) { __f->__cnt -= __n; __f->__ptr += __n; }

inline void _FILE_I_set(FILE *__f, char* __begin, char* __next, char* __end) {
# if defined(__hpux)
   if( (unsigned long) (__f - &__iob[0]) > _NFILE)
        __f->__flag |= _IOEXT;  // used by stdio's _bufend macro and goodness knows what else...
# endif
  __f->__cnt  = __end - __next;
  __f->__base = __REINTERPRET_CAST(unsigned char*, __begin);
  __f->__ptr  = __REINTERPRET_CAST(unsigned char*, __next);
  _bufend(__f) = __REINTERPRET_CAST(unsigned char*, __end);
}

// For HPUX stdio, input and output FILE manipulation is identical.

# define _STLP_FILE_I_O_IDENTICAL

#elif defined (__BORLANDC__)

typedef unsigned char* _File_ptr_type;

inline int _FILE_fd(const FILE *__f) { return __f->fd; }
inline char* _FILE_I_begin(const FILE *__f) { return (char*) __f->buffer;
}
inline char* _FILE_I_next(const FILE *__f)
{ return (char*)__f->curp; }
inline char* _FILE_I_end(const FILE *__f)
{ return (char*) __f->curp + __f->level; }

inline ptrdiff_t _FILE_I_avail(const FILE *__f) { return __f->level; }

inline char& _FILE_I_preincr(FILE *__f)
{ --__f->level; return *(char*) (++__f->curp); }
inline char& _FILE_I_postincr(FILE *__f)
{ --__f->level; return *(char*) (__f->curp++); }
inline char& _FILE_I_predecr(FILE *__f)
{ ++__f->level; return *(char*) (--__f->curp); }
inline char& _FILE_I_postdecr(FILE *__f)
{ ++__f->level; return *(char*) (__f->curp--); }
inline void _FILE_I_bump(FILE *__f, int __n)
{ __f->curp += __n; __f->level -= __n; }

inline void _FILE_I_set(FILE *__f, char* __begin, char* __next, char* __end) {
  __f->buffer = (_File_ptr_type) __begin;
  __f->curp = (_File_ptr_type) __next;
  __f->level = __end - __next;
}

# define _STLP_FILE_I_O_IDENTICAL

#elif defined( __MWERKS__ )

// using MWERKS-specific defines here to detect other OS targets
// dwa: I'm not sure they provide fileno for all OS's, but this should
// work for Win32 and WinCE

#ifndef N_PLAT_NLM
// Hmm, at least for Novell NetWare __dest_os == __mac_os true too..
// May be both __dest_os and __mac_os defined and empty?   - ptr
# if __dest_os == __mac_os
inline int   _FILE_fd(const FILE *__f) { return ::fileno(__CONST_CAST(FILE*, __f)); }
# else
inline int   _FILE_fd(const FILE *__f) { return ::_fileno(__CONST_CAST(FILE*, __f)); }
# endif // __dest_os == __mac_os

//       Returns a pointer to the beginning of the buffer.
inline char* _FILE_I_begin(const FILE *__f) { return __REINTERPRET_CAST(char*, __f->buffer); }
//       Returns the current read/write position within the buffer.
inline char* _FILE_I_next(const FILE *__f) { return __REINTERPRET_CAST(char*, __f->buffer_ptr); }

//       Returns a pointer immediately past the end of the buffer.
inline char* _FILE_I_end(const FILE *__f) { return __REINTERPRET_CAST(char*, __f->buffer_ptr + __f->buffer_len); }

//       Returns the number of characters remaining in the buffer, i.e.
//       _FILE_[IO]_end(__f) - _FILE_[IO]_next(__f).
inline ptrdiff_t _FILE_I_avail(const FILE *__f) { return __f->buffer_len; }

//       Increments the current read/write position by 1, returning the
//       character at the old position.
inline char& _FILE_I_preincr(FILE *__f)
  { --__f->buffer_len; return *(char*) (++__f->buffer_ptr); }
inline char& _FILE_I_postincr(FILE *__f)
  { --__f->buffer_len; return *(char*) (__f->buffer_ptr++); }
inline char& _FILE_I_predecr(FILE *__f)
  { ++__f->buffer_len; return *(char*) (--__f->buffer_ptr); }
inline char& _FILE_I_postdecr(FILE *__f)
  { ++__f->buffer_len; return *(char*) (__f->buffer_ptr--); }
inline void  _FILE_I_bump(FILE *__f, int __n)
  { __f->buffer_ptr += __n; __f->buffer_len -= __n; }

inline void _FILE_I_set(FILE *__f, char* __begin, char* __next, char* __end) {
  __f->buffer = __REINTERPRET_CAST(unsigned char*, __begin);
  __f->buffer_ptr   = __REINTERPRET_CAST(unsigned char*, __next);
  __f->buffer_len  = __end - __next;
  __f->buffer_size = __end - __begin;
}
#else // N_PLAT_NLM   - ptr
inline int   _FILE_fd(const FILE *__f) { return __f->_file; }
inline char* _FILE_I_begin(const FILE *__f) { return __REINTERPRET_CAST(char*, __f->_base); }
//       Returns the current read/write position within the buffer.
inline char* _FILE_I_next(const FILE *__f) { return __REINTERPRET_CAST(char*, __f->_ptr); }

//       Returns a pointer immediately past the end of the buffer.
inline char* _FILE_I_end(const FILE *__f) { return __REINTERPRET_CAST(char*, __f->_ptr + __f->_avail); }

//       Returns the number of characters remaining in the buffer, i.e.
//       _FILE_[IO]_end(__f) - _FILE_[IO]_next(__f).
inline ptrdiff_t _FILE_I_avail(const FILE *__f) { return __f->_avail; }

//       Increments the current read/write position by 1, returning the
//       character at the old position.
inline char& _FILE_I_preincr(FILE *__f)
  { --__f->_avail; return *(char*) (++__f->_ptr); }
inline char& _FILE_I_postincr(FILE *__f)
  { --__f->_avail; return *(char*) (__f->_ptr++); }
inline char& _FILE_I_predecr(FILE *__f)
  { ++__f->_avail; return *(char*) (--__f->_ptr); }
inline char& _FILE_I_postdecr(FILE *__f)
  { ++__f->_avail; return *(char*) (__f->_ptr--); }
inline void  _FILE_I_bump(FILE *__f, int __n)
  { __f->_ptr += __n; __f->_avail -= __n; }

inline void _FILE_I_set(FILE *__f, char* __begin, char* __next, char* __end) {
  __f->_base  = __REINTERPRET_CAST(unsigned char*, __begin);
  __f->_ptr   = __REINTERPRET_CAST(unsigned char*, __next);
  __f->_avail = __end - __next;
}
#endif // N_PLAT_NLM


# define _STLP_FILE_I_O_IDENTICAL

#elif defined(__DMC__)

inline int   _FILE_fd(const FILE *__f) { return __f->_file; }

//       Returns a pointer to the beginning of the buffer.
inline char* _FILE_I_begin(const FILE *__f) { return __f->_base; }

//       Returns the current read/write position within the buffer.
inline char* _FILE_I_next(const FILE *__f) { return __f->_ptr; }

//       Returns a pointer immediately past the end of the buffer.
inline char* _FILE_I_end(const FILE *__f) { return __f->_ptr + __f->_cnt; }

//       Returns the number of characters remaining in the buffer, i.e.
//       _FILE_[IO]_end(__f) - _FILE_[IO]_next(__f).
inline ptrdiff_t _FILE_I_avail(const FILE *__f) { return __f->_cnt; }

//       Increments the current read/write position by 1, returning the
//       character at the NEW position.
inline char& _FILE_I_preincr(FILE *__f) { --__f->_cnt; return *(++__f->_ptr); }


//       Increments the current read/write position by 1, returning the
//       character at the old position.
inline char& _FILE_I_postincr(FILE *__f) { --__f->_cnt; return *(__f->_ptr++); }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -