亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? file.cc

?? 早期freebsd實現
?? CC
字號:
/* Copyright (C) 1988 Free Software Foundation    written by Doug Lea (dl@rocky.oswego.edu)This file is part of the GNU C++ Library.  This library is freesoftware; you can redistribute it and/or modify it under the terms ofthe GNU Library General Public License as published by the FreeSoftware Foundation; either version 2 of the License, or (at youroption) any later version.  This library is distributed in the hopethat it will be useful, but WITHOUT ANY WARRANTY; without even theimplied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULARPURPOSE.  See the GNU Library General Public License for more details.You should have received a copy of the GNU Library General PublicLicense along with this library; if not, write to the Free SoftwareFoundation, 675 Mass Ave, Cambridge, MA 02139, USA.*/#ifdef __GNUG__#pragma implementation#endif#include <File.h>#include <std.h>#include <stdarg.h>#include <values.h>#include <sys/file.h>           // needed to determine values of O_RDONLY...#ifdef VMS#include <errno.h>	// needed to get the psect magic loaded#define	FP	(*fp)#else#define	FP	fp#endif// error handlersvoid verbose_File_error_handler(const char* msg){  perror(msg);  errno = 0;}void quiet_File_error_handler(const char*){  errno = 0;}void fatal_File_error_handler(const char* msg){  perror(msg);  exit(1);}one_arg_error_handler_t File_error_handler = verbose_File_error_handler;one_arg_error_handler_t set_File_error_handler(one_arg_error_handler_t f){  one_arg_error_handler_t old = File_error_handler;  File_error_handler = f;  return old;}/* Opening files.  open(filename, io_mode, access_mode) is done via system open  command since fopen doesn't handle all of the cases possible  with sys open. After a successful open, fdopen is called to  attach an _iobuf to the file descriptor. All this requires a few decoding routines that can translate among our enumerated types, system flags, and fopen modes.*/enum sys_open_cmd_io_mode  // These should be correct for most systems{                          sio_read      = O_RDONLY,  sio_write     = O_WRONLY,  sio_readwrite = O_RDWR,  sio_append    = O_APPEND};enum sys_open_cmd_access_mode{  sa_create     = O_CREAT,  sa_truncate   = O_TRUNC,  sa_createonly = O_EXCL | O_CREAT};  static int open_cmd_arg(io_mode i, access_mode a) // decode modes{  int arg;  switch(i)  {  case io_readonly:   arg = sio_read;                   break;  case io_writeonly:  arg = sio_write;                  break;  case io_readwrite:  arg = sio_readwrite;              break;  case io_appendonly: arg = sio_append | sio_write;     break;  case io_append:     arg = sio_append | sio_readwrite; break;  default:            return -1;  };  switch(a)  {  case a_createonly:  return arg | sa_createonly;  case a_create:      return arg | sa_create | sa_truncate;  case a_useonly:     return arg;  case a_use:         return arg | sa_create;  default:            return -1;  }}static char* fopen_cmd_arg(io_mode i){  switch(i)  {  case io_readonly:  return "r";  case io_writeonly: return "w";  case io_readwrite: return "r+";  case io_appendonly:return "a";  case io_append:    return "a+";  default:           return 0;  }}void File::initialize() {   fp = 0; nm = 0; stat = 0; state = _bad; rw = 0;}// reset class vars after open// fp->_flag inspection is isolated herevoid File::reinitialize(const char* filename){  if (filename != 0)     setname(filename);  else if (fp == stdin)  setname("(stdin)");  else if (fp == stdout) setname("(stdout)");  else if (fp == stderr) setname("(stderr)");  else if (rw & 4)       setname("(string)");  else setname(0);  if (fp != 0)  {    state = _good;    if (FP->_flag & (_IOREAD|_IORW))      rw |= 01;    if (FP->_flag & (_IOWRT|_IORW))      rw |= 02;    check_state();  }  else  {    set(_fail); set(_bad);    error();  }}File& File::open(const char* filename, io_mode m, access_mode a){                                     close();  int open_arg = open_cmd_arg(m, a);  if (open_arg != -1)  {    int fd = ::open(filename, open_arg, 0666);    if (fd >= 0)      fp = fdopen(fd, fopen_cmd_arg(m));  }  reinitialize(filename);  return *this;}File& File::open(const char* filename, const char* m){                                     close();  fp = fopen(filename, m);  reinitialize(filename);  return *this;}File& File::open(FILE* fileptr){  close();  fp = fileptr;  reinitialize(0);  return *this;}File& File::open(int filedesc, io_mode m){  close();  fp = fdopen(filedesc, fopen_cmd_arg(m));  reinitialize(0);  return *this;}File& File::close(){  if (fp != 0)  {#ifdef VMS    if (rw & 4)                 // we own the iobuf, kill it      delete(*fp);	// kill the _iobuf#endif    if (rw & 4)                 // we own the iobuf, kill it      delete fp;    else if (fp == stdin || fp == stdout || fp == stderr)      flush();    else      fclose(fp);  }  fp = 0;  rw = 0;  set(_bad);  return *this;}File& File::remove(){  close();  return failif (nm == 0 || unlink(nm) != 0);}File::File(){   initialize(); }File::File(const char* filename, io_mode m, access_mode a)   {   initialize();   open(filename, m, a); }File::File(const char* filename, const char* m)   {   initialize();   open(filename, m); }File::File(int filedesc, io_mode m){   initialize();   open(filedesc, m); }File::File(FILE* fileptr){   initialize();   open(fileptr); }File::File(int sz, char* buf, io_mode m){  if (m != io_readonly && m != io_writeonly)    (*File_error_handler) ("invalid io_mode for string IO");  initialize();  rw = 4;#ifdef VMS  _iobuf	*iob;  FILE		*f;  iob = new _iobuf;  f = new(FILE);  *f = iob;  fp = f;#else  fp = new _iobuf;#endif#ifndef _NFILE  FP->_file = 255;          // any illegal value#else  FP->_file = _NFILE-1;       // The last filedescriptor...#ifdef BUFEND_ENTRY_TYPE  _bufendtab[FP->_file] = (BUFEND_ENTRY_TYPE)buf+sz-1;#endif#endif  FP->_ptr = FP->_base = buf;#ifdef HAVE_BUFSIZ  FP->_bufsiz = sz;#endif  if (m == io_readonly)  {    int len = 0;    while (len < sz && buf[len] != 0) ++len;    if (len == sz)      buf[sz - 1] = 0;            // force null-termination!    FP->_cnt = len;    FP->_flag = _IOREAD | _IOSTRG | _IOMYBUF;  }  else  {    bzero(buf, sz);             // so any result will be null-terminated    FP->_cnt = sz - 1;          // leave at least one null at end    FP->_flag = _IOWRT | _IOSTRG | _IOMYBUF;  }  reinitialize(0);}File::~File(){  delete(nm);  close();}void File::setname(const char* newname){  if (nm == newname) return;  if (nm != 0)    delete(nm);  if (newname != 0)  {    nm = new char[strlen(newname) + 1];    strcpy(nm, newname);  }  else    nm = 0;}File& File::setbuf(int buffer_kind){                    if (!is_open())  {    set(_fail);    return *this;  }  switch(buffer_kind)  {  case _IOFBF:       #ifdef HAVE_SETVBUF    setvbuf(fp, 0, _IOFBF, 0);#endif    break;             case _IONBF:           ::setbuf(fp, 0);     break;  case _IOLBF:#ifdef HAVE_SETLINEBUF    setlinebuf(fp);#else#ifdef HAVE_SETVBUF    setvbuf(fp, 0, _IOLBF, 0);#endif#endif        break;  default:    break;  }  return *this;}File& File::setbuf(int size, char* buf){  if (!is_open())  {    set(_fail);    return *this;  }#ifdef HAVE_SETVBUF  setvbuf(fp, buf, _IOFBF, size);#else  setbuffer(fp, buf, size);#endif  return *this;}void File::error(){  check_state();  set(_fail);  if (errno != 0)  {    char error_string[400];    strcpy(error_string, "\nerror in File ");    if (nm != 0)      strcat(error_string, nm);    (*File_error_handler)(error_string);  }}//------------------------------------------------------------------void File::check_state() // ensure fp & state agree about eof{  if (fp != 0)  {    if (feof(fp))      set(_eof);    else      unset(_eof);    if (ferror(fp))      set(_bad);  }}File& File::put(const char* s){   return failif(!writable() || fputs(s, fp) == EOF);}File& File::get(char* s, int n, char terminator){  if (!readable())  {    set(_fail);    return *this;  }  char ch;  stat = --n;  if (n > 0 && (get(ch)))  {    if (ch == terminator) {      unget(ch);      stat= 0;	// This is not an error condition !    }    else    {      *s++ = ch; --n;      while (n > 0 && (get(ch)))      {        if (ch == terminator)        {          unget(ch);          break;        }        else        {          *s++ = ch; --n;        }      }    }  }  *s = 0;  return failif((stat != 0) && ((stat -= n) == 0));}File& File::getline(char* s, int n, char terminator){  if (!readable())  {    set(_fail);    return *this;  }  char ch;  stat = --n;  while (n > 0 && (get(ch)))  {    --n;    if ((*s++ = ch) == terminator)      break;  }  *s = 0;  return failif((stat != 0) && ((stat -= n) == 0));}// from Doug Schmidt// This should probably be a page size....#define CHUNK_SIZE 512/* Reads an arbitrarily long input line terminated by a user-specified   TERMINATOR.  Super-nifty trick using recursion avoids unnecessary calls   to NEW! */char *File::readline (int chunk_number, char terminator) {  char buf[CHUNK_SIZE];  register char *bufptr = buf;  register char *ptr;  char ch;  int continu;  while ((continu = !!get(ch)) && ch != terminator) /* fill the current buffer */    {      *bufptr++ = ch;      if (bufptr - buf >= CHUNK_SIZE) /* prepend remainder to ptr buffer */        {          if (ptr = readline (chunk_number + 1, terminator))            for (; bufptr != buf; *--ptr = *--bufptr);          return ptr;        }    }  if (!continu && bufptr == buf)    return NULL;  int size = (chunk_number * CHUNK_SIZE + bufptr - buf) + 1;  if (ptr = new char[stat = size])    {      for (*(ptr += (size - 1)) = '\0'; bufptr != buf; *--ptr = *--bufptr)        ;      return ptr;    }   else     return NULL;}/* Reads an arbitrarily long input line terminated by TERMINATOR.   This routine allocates its own memory, so the user should   only supply the address of a (char *). */File& File::gets(char **s, char terminator){  if (!readable())  {    set(_fail);    return *this;  }  return failif(!(*s = readline (0, terminator)));}  #ifndef VMSFile& File::scan(const char* fmt ...){  if (readable())  {    va_list args;    va_start(args, fmt);#ifndef HAVE_VSCANF    stat = _doscan(fp, fmt, args);#else    stat = vfscanf(fp, fmt, args);#endif    va_end(args);    failif(stat <= 0);  }  return *this;}#endifFile& File::form(const char* fmt ...){  va_list args;  va_start(args, fmt);#ifndef HAVE_VPRINTF  stat = _doprnt(fmt, args, fp);#ifdef HAVE_VOID_DOPRNT  stat = ferror(fp) ? -1 : 0;#endif#else  stat = vfprintf(fp, fmt, args);#endif  va_end(args);  failif(stat < 0);  return *this;}#ifdef VMSextern "C" {    unlink(const char *s)    {        int remove(const char *);    	return remove(s);    }}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲毛片av在线| 一区二区不卡在线视频 午夜欧美不卡在| 9l国产精品久久久久麻豆| 国产黄人亚洲片| 成人性色生活片| 成人a级免费电影| 成人免费视频一区| 色综合久久综合网欧美综合网 | 久久日韩粉嫩一区二区三区| 欧美日韩一级片网站| 欧洲生活片亚洲生活在线观看| 91久久一区二区| 精品婷婷伊人一区三区三| 56国语精品自产拍在线观看| 91精品国产乱| 国产午夜精品美女毛片视频| 日韩毛片在线免费观看| 亚洲成av人在线观看| 久久国产精品99精品国产 | 欧美日韩国产综合久久| 91精品国产综合久久香蕉的特点 | 亚洲色图丝袜美腿| 亚洲精品国产a| 免费一级欧美片在线观看| 韩国v欧美v日本v亚洲v| 波波电影院一区二区三区| 欧美主播一区二区三区美女| 日韩欧美高清在线| 亚洲免费看黄网站| 麻豆国产91在线播放| 99这里都是精品| 91精品福利在线一区二区三区| 2023国产一二三区日本精品2022| 国产精品久久久久久户外露出 | 日韩欧美久久久| 中文字幕一区二区三区色视频| 亚洲va欧美va人人爽| 国产激情视频一区二区三区欧美| 欧美日韩中文另类| 国产女同互慰高潮91漫画| 日韩黄色免费电影| www.欧美亚洲| 久久亚洲免费视频| 性做久久久久久免费观看| 成人网男人的天堂| 欧美精品一区二| 午夜视频一区二区三区| 成人小视频在线| 精品国产乱码久久久久久夜甘婷婷 | 韩国精品久久久| 777午夜精品免费视频| 亚洲欧美日韩国产中文在线| 国模冰冰炮一区二区| 4438成人网| 亚洲成人综合视频| 日本伦理一区二区| 中文字幕一区二区三区蜜月 | 91福利区一区二区三区| 国产欧美va欧美不卡在线 | 国产精品久99| 国产成人综合亚洲网站| 欧美一区二区播放| 丝袜美腿成人在线| 欧美日韩一区二区三区视频| 亚洲综合男人的天堂| 97久久精品人人做人人爽50路| 国产色综合一区| 国产一区二区调教| 国产亚洲精品资源在线26u| 蜜臀av一区二区三区| 欧美一区二区福利在线| 日本va欧美va欧美va精品| 6080yy午夜一二三区久久| 午夜久久久影院| 91精品国产91久久久久久一区二区| 亚洲mv大片欧洲mv大片精品| 欧美高清性hdvideosex| 日本vs亚洲vs韩国一区三区二区 | 国产精品一区二区在线观看不卡| 欧美成人免费网站| 国产在线精品免费| 国产日韩欧美精品在线| www.亚洲精品| 亚洲高清一区二区三区| 欧美丰满嫩嫩电影| 九一九一国产精品| 国产免费成人在线视频| 97久久超碰国产精品电影| 亚洲久草在线视频| 91精品国产综合久久久久久久| 麻豆成人久久精品二区三区小说| 欧美α欧美αv大片| 成人高清在线视频| 亚洲国产精品一区二区尤物区| 欧美精品高清视频| 福利一区福利二区| 亚洲午夜一区二区| 日韩欧美不卡在线观看视频| 丁香婷婷综合网| 亚洲国产精品天堂| 久久婷婷色综合| 91同城在线观看| 久久av资源网| 国产精品久久久久三级| 欧美猛男gaygay网站| 粉嫩绯色av一区二区在线观看 | 国产精品嫩草影院com| 色婷婷精品大在线视频| 久久精品久久精品| 国产精品毛片久久久久久| 欧美一区二区在线观看| 国产v日产∨综合v精品视频| 亚洲一区av在线| 日本一区二区三区久久久久久久久不| 91官网在线观看| 国产高清视频一区| 三级久久三级久久久| 国产精品沙发午睡系列990531| 555www色欧美视频| 91在线视频官网| 国产成人小视频| 精品一区二区三区免费毛片爱| 一区二区三区在线视频观看| 国产日韩精品久久久| 91精品国产91久久久久久一区二区| 成人免费高清在线观看| 日欧美一区二区| 亚洲乱码国产乱码精品精的特点| 久久综合999| 欧美一区二区三区在| 欧美三级电影在线看| 9色porny自拍视频一区二区| 国产成人午夜片在线观看高清观看 | 亚洲男人的天堂在线aⅴ视频| 亚洲精品一区二区三区影院| 欧美精品久久久久久久多人混战| 色av一区二区| 91农村精品一区二区在线| 国产91精品免费| 韩国理伦片一区二区三区在线播放| 日韩激情一二三区| 首页欧美精品中文字幕| 日韩精品一区第一页| 亚洲丰满少妇videoshd| 亚洲二区在线视频| 亚洲自拍偷拍图区| 亚洲主播在线观看| 亚洲一区二区在线播放相泽| 亚洲欧美综合另类在线卡通| 成人欧美一区二区三区视频网页| 国产精品少妇自拍| 中文字幕一区二区三区在线观看| 国产精品久久久久精k8| 亚洲欧美综合网| 亚洲综合一区二区三区| 亚洲一区av在线| 日本少妇一区二区| 蜜臀久久99精品久久久画质超高清 | 国内精品自线一区二区三区视频| 国内成人免费视频| 国产精品一二三四区| 成人午夜激情影院| 色悠久久久久综合欧美99| 欧美日韩国产成人在线免费| 欧美一区二区三区小说| 26uuu国产日韩综合| 国产精品黄色在线观看| 一区二区理论电影在线观看| 日韩av在线播放中文字幕| 蜜臂av日日欢夜夜爽一区| 国产一区二区久久| 99免费精品视频| 欧美日韩成人高清| 久久亚洲一级片| 伊人一区二区三区| 青青青伊人色综合久久| 成人一区二区三区在线观看| 在线免费观看日韩欧美| 日韩美女视频在线| 国产精品不卡一区| 日韩av一区二区三区四区| 成人午夜av电影| 欧美久久久久免费| 国产精品美女久久久久av爽李琼 | 欧美成人午夜电影| 中文字幕一区视频| 全国精品久久少妇| 91影院在线观看| 欧美mv和日韩mv国产网站| 亚洲欧美精品午睡沙发| 久久99国内精品| 色欧美88888久久久久久影院| 精品国产制服丝袜高跟| 亚洲综合在线免费观看| 国产一区二区在线免费观看| 欧美色综合网站| ㊣最新国产の精品bt伙计久久| 日本最新不卡在线| 日本丰满少妇一区二区三区| 中文字幕欧美日韩一区|