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

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

?? shell.c

?? 嵌入式數據系統軟件!
?? C
?? 第 1 頁 / 共 4 頁
字號:
    }else{      rc = 1;    }    sqlite3_free_table(azResult);  }else  if( c=='t' && n>4 && strncmp(azArg[0], "timeout", n)==0 && nArg>=2 ){    open_db(p);    sqlite3_busy_timeout(p->db, atoi(azArg[1]));  }else  #if HAS_TIMER    if( c=='t' && n>=5 && strncmp(azArg[0], "timer", n)==0 && nArg>1 ){    enableTimer = booleanValue(azArg[1]);  }else#endif  if( c=='w' && strncmp(azArg[0], "width", n)==0 ){    int j;    assert( nArg<=ArraySize(azArg) );    for(j=1; j<nArg && j<ArraySize(p->colWidth); j++){      p->colWidth[j-1] = atoi(azArg[j]);    }  }else  {    fprintf(stderr, "unknown command or invalid arguments: "      " \"%s\". Enter \".help\" for help\n", azArg[0]);  }  return rc;}/*** Return TRUE if a semicolon occurs anywhere in the first N characters** of string z[].*/static int _contains_semicolon(const char *z, int N){  int i;  for(i=0; i<N; i++){  if( z[i]==';' ) return 1; }  return 0;}/*** Test to see if a line consists entirely of whitespace.*/static int _all_whitespace(const char *z){  for(; *z; z++){    if( isspace(*(unsigned char*)z) ) continue;    if( *z=='/' && z[1]=='*' ){      z += 2;      while( *z && (*z!='*' || z[1]!='/') ){ z++; }      if( *z==0 ) return 0;      z++;      continue;    }    if( *z=='-' && z[1]=='-' ){      z += 2;      while( *z && *z!='\n' ){ z++; }      if( *z==0 ) return 1;      continue;    }    return 0;  }  return 1;}/*** Return TRUE if the line typed in is an SQL command terminator other** than a semi-colon.  The SQL Server style "go" command is understood** as is the Oracle "/".*/static int _is_command_terminator(const char *zLine){  while( isspace(*(unsigned char*)zLine) ){ zLine++; };  if( zLine[0]=='/' && _all_whitespace(&zLine[1]) ) return 1;  /* Oracle */  if( tolower(zLine[0])=='g' && tolower(zLine[1])=='o'         && _all_whitespace(&zLine[2]) ){    return 1;  /* SQL Server */  }  return 0;}/*** Read input from *in and process it.  If *in==0 then input** is interactive - the user is typing it it.  Otherwise, input** is coming from a file or device.  A prompt is issued and history** is saved only if input is interactive.  An interrupt signal will** cause this routine to exit immediately, unless input is interactive.**** Return the number of errors.*/static int process_input(struct callback_data *p, FILE *in){  char *zLine = 0;  char *zSql = 0;  int nSql = 0;  int nSqlPrior = 0;  char *zErrMsg;  int rc;  int errCnt = 0;  int lineno = 0;  int startline = 0;  while( errCnt==0 || !bail_on_error || (in==0 && stdin_is_interactive) ){    fflush(p->out);    free(zLine);    zLine = one_input_line(zSql, in);    if( zLine==0 ){      break;  /* We have reached EOF */    }    if( seenInterrupt ){      if( in!=0 ) break;      seenInterrupt = 0;    }    lineno++;    if( p->echoOn ) printf("%s\n", zLine);    if( (zSql==0 || zSql[0]==0) && _all_whitespace(zLine) ) continue;    if( zLine && zLine[0]=='.' && nSql==0 ){      rc = do_meta_command(zLine, p);      if( rc==2 ){        break;      }else if( rc ){        errCnt++;      }      continue;    }    if( _is_command_terminator(zLine) ){      memcpy(zLine,";",2);    }    nSqlPrior = nSql;    if( zSql==0 ){      int i;      for(i=0; zLine[i] && isspace((unsigned char)zLine[i]); i++){}      if( zLine[i]!=0 ){        nSql = strlen(zLine);        zSql = malloc( nSql+1 );        if( zSql==0 ){          fprintf(stderr, "out of memory\n");          exit(1);        }        memcpy(zSql, zLine, nSql+1);        startline = lineno;      }    }else{      int len = strlen(zLine);      zSql = realloc( zSql, nSql + len + 2 );      if( zSql==0 ){        fprintf(stderr,"%s: out of memory!\n", Argv0);        exit(1);      }      zSql[nSql++] = '\n';      memcpy(&zSql[nSql], zLine, len+1);      nSql += len;    }    if( zSql && _contains_semicolon(&zSql[nSqlPrior], nSql-nSqlPrior)                && sqlite3_complete(zSql) ){      p->cnt = 0;      open_db(p);      BEGIN_TIMER;      rc = sqlite3_exec(p->db, zSql, callback, p, &zErrMsg);      END_TIMER;      if( rc || zErrMsg ){        char zPrefix[100];        if( in!=0 || !stdin_is_interactive ){          sqlite3_snprintf(sizeof(zPrefix), zPrefix,                            "SQL error near line %d:", startline);        }else{          sqlite3_snprintf(sizeof(zPrefix), zPrefix, "SQL error:");        }        if( zErrMsg!=0 ){          printf("%s %s\n", zPrefix, zErrMsg);          sqlite3_free(zErrMsg);          zErrMsg = 0;        }else{          printf("%s %s\n", zPrefix, sqlite3_errmsg(p->db));        }        errCnt++;      }      free(zSql);      zSql = 0;      nSql = 0;    }  }  if( zSql ){    if( !_all_whitespace(zSql) ) printf("Incomplete SQL: %s\n", zSql);    free(zSql);  }  free(zLine);  return errCnt;}/*** Return a pathname which is the user's home directory.  A** 0 return indicates an error of some kind.  Space to hold the** resulting string is obtained from malloc().  The calling** function should free the result.*/static char *find_home_dir(void){  char *home_dir = NULL;#if !defined(_WIN32) && !defined(WIN32) && !defined(__OS2__) && !defined(_WIN32_WCE)  struct passwd *pwent;  uid_t uid = getuid();  if( (pwent=getpwuid(uid)) != NULL) {    home_dir = pwent->pw_dir;  }#endif#if defined(_WIN32_WCE)  /* Windows CE (arm-wince-mingw32ce-gcc) does not provide getenv()   */  home_dir = strdup("/");#else#if defined(_WIN32) || defined(WIN32) || defined(__OS2__)  if (!home_dir) {    home_dir = getenv("USERPROFILE");  }#endif  if (!home_dir) {    home_dir = getenv("HOME");  }#if defined(_WIN32) || defined(WIN32) || defined(__OS2__)  if (!home_dir) {    char *zDrive, *zPath;    int n;    zDrive = getenv("HOMEDRIVE");    zPath = getenv("HOMEPATH");    if( zDrive && zPath ){      n = strlen(zDrive) + strlen(zPath) + 1;      home_dir = malloc( n );      if( home_dir==0 ) return 0;      sqlite3_snprintf(n, home_dir, "%s%s", zDrive, zPath);      return home_dir;    }    home_dir = "c:\\";  }#endif#endif /* !_WIN32_WCE */  if( home_dir ){    int n = strlen(home_dir) + 1;    char *z = malloc( n );    if( z ) memcpy(z, home_dir, n);    home_dir = z;  }  return home_dir;}/*** Read input from the file given by sqliterc_override.  Or if that** parameter is NULL, take input from ~/.sqliterc*/static void process_sqliterc(  struct callback_data *p,        /* Configuration data */  const char *sqliterc_override   /* Name of config file. NULL to use default */){  char *home_dir = NULL;  const char *sqliterc = sqliterc_override;  char *zBuf = 0;  FILE *in = NULL;  int nBuf;  if (sqliterc == NULL) {    home_dir = find_home_dir();    if( home_dir==0 ){      fprintf(stderr,"%s: cannot locate your home directory!\n", Argv0);      return;    }    nBuf = strlen(home_dir) + 16;    zBuf = malloc( nBuf );    if( zBuf==0 ){      fprintf(stderr,"%s: out of memory!\n", Argv0);      exit(1);    }    sqlite3_snprintf(nBuf, zBuf,"%s/.sqliterc",home_dir);    free(home_dir);    sqliterc = (const char*)zBuf;  }  in = fopen(sqliterc,"rb");  if( in ){    if( stdin_is_interactive ){      printf("-- Loading resources from %s\n",sqliterc);    }    process_input(p,in);    fclose(in);  }  free(zBuf);  return;}/*** Show available command line options*/static const char zOptions[] =   "   -init filename       read/process named file\n"  "   -echo                print commands before execution\n"  "   -[no]header          turn headers on or off\n"  "   -bail                stop after hitting an error\n"  "   -interactive         force interactive I/O\n"  "   -batch               force batch I/O\n"  "   -column              set output mode to 'column'\n"  "   -csv                 set output mode to 'csv'\n"  "   -html                set output mode to HTML\n"  "   -line                set output mode to 'line'\n"  "   -list                set output mode to 'list'\n"  "   -separator 'x'       set output field separator (|)\n"  "   -nullvalue 'text'    set text string for NULL values\n"  "   -version             show SQLite version\n";static void usage(int showDetail){  fprintf(stderr,      "Usage: %s [OPTIONS] FILENAME [SQL]\n"        "FILENAME is the name of an SQLite database. A new database is created\n"      "if the file does not previously exist.\n", Argv0);  if( showDetail ){    fprintf(stderr, "OPTIONS include:\n%s", zOptions);  }else{    fprintf(stderr, "Use the -help option for additional information\n");  }  exit(1);}/*** Initialize the state information in data*/static void main_init(struct callback_data *data) {  memset(data, 0, sizeof(*data));  data->mode = MODE_List;  memcpy(data->separator,"|", 2);  data->showHeader = 0;  sqlite3_snprintf(sizeof(mainPrompt), mainPrompt,"sqlite> ");  sqlite3_snprintf(sizeof(continuePrompt), continuePrompt,"   ...> ");}int main(int argc, char **argv){  char *zErrMsg = 0;  struct callback_data data;  const char *zInitFile = 0;  char *zFirstCmd = 0;  int i;  int rc = 0;  Argv0 = argv[0];  main_init(&data);  stdin_is_interactive = isatty(0);  /* Make sure we have a valid signal handler early, before anything  ** else is done.  */#ifdef SIGINT  signal(SIGINT, interrupt_handler);#endif  /* Do an initial pass through the command-line argument to locate  ** the name of the database file, the name of the initialization file,  ** and the first command to execute.  */  for(i=1; i<argc-1; i++){    char *z;    if( argv[i][0]!='-' ) break;    z = argv[i];    if( z[0]=='-' && z[1]=='-' ) z++;    if( strcmp(argv[i],"-separator")==0 || strcmp(argv[i],"-nullvalue")==0 ){      i++;    }else if( strcmp(argv[i],"-init")==0 ){      i++;      zInitFile = argv[i];    }  }  if( i<argc ){    data.zDbFilename = argv[i++];  }else{#ifndef SQLITE_OMIT_MEMORYDB    data.zDbFilename = ":memory:";#else    data.zDbFilename = 0;#endif  }  if( i<argc ){    zFirstCmd = argv[i++];  }  data.out = stdout;#ifdef SQLITE_OMIT_MEMORYDB  if( data.zDbFilename==0 ){    fprintf(stderr,"%s: no database filename specified\n", argv[0]);    exit(1);  }#endif  /* Go ahead and open the database file if it already exists.  If the  ** file does not exist, delay opening it.  This prevents empty database  ** files from being created if a user mistypes the database name argument  ** to the sqlite command-line tool.  */  if( access(data.zDbFilename, 0)==0 ){    open_db(&data);  }  /* Process the initialization file if there is one.  If no -init option  ** is given on the command line, look for a file named ~/.sqliterc and  ** try to process it.  */  process_sqliterc(&data,zInitFile);  /* Make a second pass through the command-line argument and set  ** options.  This second pass is delayed until after the initialization  ** file is processed so that the command-line arguments will override  ** settings in the initialization file.  */  for(i=1; i<argc && argv[i][0]=='-'; i++){    char *z = argv[i];    if( z[1]=='-' ){ z++; }    if( strcmp(z,"-init")==0 ){      i++;    }else if( strcmp(z,"-html")==0 ){      data.mode = MODE_Html;    }else if( strcmp(z,"-list")==0 ){      data.mode = MODE_List;    }else if( strcmp(z,"-line")==0 ){      data.mode = MODE_Line;    }else if( strcmp(z,"-column")==0 ){      data.mode = MODE_Column;    }else if( strcmp(z,"-csv")==0 ){      data.mode = MODE_Csv;      memcpy(data.separator,",",2);    }else if( strcmp(z,"-separator")==0 ){      i++;      sqlite3_snprintf(sizeof(data.separator), data.separator,                       "%.*s",(int)sizeof(data.separator)-1,argv[i]);    }else if( strcmp(z,"-nullvalue")==0 ){      i++;      sqlite3_snprintf(sizeof(data.nullvalue), data.nullvalue,                       "%.*s",(int)sizeof(data.nullvalue)-1,argv[i]);    }else if( strcmp(z,"-header")==0 ){      data.showHeader = 1;    }else if( strcmp(z,"-noheader")==0 ){      data.showHeader = 0;    }else if( strcmp(z,"-echo")==0 ){      data.echoOn = 1;    }else if( strcmp(z,"-bail")==0 ){      bail_on_error = 1;    }else if( strcmp(z,"-version")==0 ){      printf("%s\n", sqlite3_libversion());      return 0;    }else if( strcmp(z,"-interactive")==0 ){      stdin_is_interactive = 1;    }else if( strcmp(z,"-batch")==0 ){      stdin_is_interactive = 0;    }else if( strcmp(z,"-help")==0 || strcmp(z, "--help")==0 ){      usage(1);    }else{      fprintf(stderr,"%s: unknown option: %s\n", Argv0, z);      fprintf(stderr,"Use -help for a list of options.\n");      return 1;    }  }  if( zFirstCmd ){    /* Run just the command that follows the database name    */    if( zFirstCmd[0]=='.' ){      do_meta_command(zFirstCmd, &data);      exit(0);    }else{      int rc;      open_db(&data);      rc = sqlite3_exec(data.db, zFirstCmd, callback, &data, &zErrMsg);      if( rc!=0 && zErrMsg!=0 ){        fprintf(stderr,"SQL error: %s\n", zErrMsg);        exit(1);      }    }  }else{    /* Run commands received from standard input    */    if( stdin_is_interactive ){      char *zHome;      char *zHistory = 0;      int nHistory;      printf(        "SQLite version %s\n"        "Enter \".help\" for instructions\n",        sqlite3_libversion()      );      zHome = find_home_dir();      if( zHome && (zHistory = malloc(nHistory = strlen(zHome)+20))!=0 ){        sqlite3_snprintf(nHistory, zHistory,"%s/.sqlite_history", zHome);      }#if defined(HAVE_READLINE) && HAVE_READLINE==1      if( zHistory ) read_history(zHistory);#endif      rc = process_input(&data, 0);      if( zHistory ){        stifle_history(100);        write_history(zHistory);        free(zHistory);      }      free(zHome);    }else{      rc = process_input(&data, stdin);    }  }  set_table_name(&data, 0);  if( db ){    if( sqlite3_close(db)!=SQLITE_OK ){      fprintf(stderr,"error closing database: %s\n", sqlite3_errmsg(db));    }  }  return rc;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人免费毛片片v| 亚洲婷婷国产精品电影人久久| 伊人夜夜躁av伊人久久| 99久久精品国产一区| 亚洲男人电影天堂| 欧美日韩一级二级三级| 五月天国产精品| 欧美电视剧在线看免费| 国产成人在线视频免费播放| 国产精品乱码一区二区三区软件 | 一区二区三区高清不卡| 91高清视频免费看| 日本在线不卡视频一二三区| 亚洲精品在线电影| eeuss鲁片一区二区三区在线看| 亚洲激情第一区| 91精品国产综合久久蜜臀| 九九九精品视频| 成人免费在线播放视频| 欧美日韩电影在线| 国产精品综合一区二区| 亚洲欧美精品午睡沙发| 在线成人小视频| 国产不卡在线播放| 香蕉乱码成人久久天堂爱免费| 2欧美一区二区三区在线观看视频| 成人午夜av影视| 亚洲国产日韩综合久久精品| 亚洲精品在线观看视频| 91污片在线观看| 久久精品国产一区二区三| 亚洲丝袜制服诱惑| 日韩欧美国产三级| 不卡一区二区中文字幕| 日韩精彩视频在线观看| 国产精品亲子乱子伦xxxx裸| 69久久夜色精品国产69蝌蚪网| 成熟亚洲日本毛茸茸凸凹| 午夜欧美大尺度福利影院在线看| 欧美激情在线观看视频免费| 91精品国产综合久久精品麻豆 | 国产精品无码永久免费888| 欧美系列日韩一区| 成人综合婷婷国产精品久久| 99精品1区2区| 激情另类小说区图片区视频区| 亚洲色图在线视频| 久久日韩粉嫩一区二区三区| 欧美日韩三级在线| 91丝袜呻吟高潮美腿白嫩在线观看| 麻豆91在线播放免费| 亚洲国产成人av网| 成人免费在线播放视频| 中文字幕欧美日韩一区| 日韩美女在线视频| 91麻豆精品91久久久久同性| 色久综合一二码| av在线播放不卡| 不卡一区二区中文字幕| 国产精品99久久久| 免费欧美在线视频| 日韩专区中文字幕一区二区| 亚洲毛片av在线| 亚洲少妇30p| 国产精品电影院| 久久色在线观看| 日韩天堂在线观看| 欧美一级淫片007| 欧美丰满少妇xxxbbb| 欧美日韩一区在线观看| 91蜜桃免费观看视频| 粉嫩嫩av羞羞动漫久久久| 国内国产精品久久| 狠狠v欧美v日韩v亚洲ⅴ| 麻豆成人久久精品二区三区小说| 偷拍一区二区三区四区| 午夜激情一区二区三区| 日本最新不卡在线| 蜜臀av一区二区在线免费观看| 日日夜夜精品视频免费| 首页国产欧美日韩丝袜| 日韩成人午夜电影| 精品亚洲aⅴ乱码一区二区三区| 老色鬼精品视频在线观看播放| 久久99精品久久久久久国产越南| 老司机精品视频一区二区三区| 极品少妇一区二区三区精品视频| 韩国成人精品a∨在线观看| 国产精品资源站在线| 成人av在线一区二区三区| 99久久婷婷国产| 欧美日韩精品三区| 日韩一二在线观看| 久久久亚洲精品石原莉奈| 国产日韩一级二级三级| 国产精品久久久久天堂| 亚洲综合无码一区二区| 天堂成人免费av电影一区| 美国毛片一区二区三区| 国产高清精品网站| 92国产精品观看| 欧美老女人第四色| 欧美精品一区二区不卡| 国产精品国产精品国产专区不蜜| 伊人一区二区三区| 精品一区二区综合| 9人人澡人人爽人人精品| 欧美另类videos死尸| 久久尤物电影视频在线观看| 国产精品女主播av| 亚洲成va人在线观看| 国产精品99久久久久久有的能看| k8久久久一区二区三区| 欧美日韩视频专区在线播放| 久久视频一区二区| 亚洲另类在线视频| 国产综合久久久久久久久久久久| 色综合天天综合在线视频| 日韩一区二区电影网| 欧美国产一区二区| 亚洲bt欧美bt精品777| 国产精品一区二区在线看| 在线国产亚洲欧美| 国产日韩精品一区二区三区| 亚洲国产视频一区二区| 国产高清精品网站| 91精品啪在线观看国产60岁| 亚洲天堂av一区| 精彩视频一区二区| 欧美精品一卡两卡| 成人欧美一区二区三区黑人麻豆| 久久99国产精品尤物| 色婷婷精品大视频在线蜜桃视频| 精品免费国产一区二区三区四区| 亚洲一卡二卡三卡四卡无卡久久| 国内精品免费**视频| 欧美精品久久久久久久久老牛影院| 国产欧美精品一区二区三区四区 | 久国产精品韩国三级视频| 色综合久久88色综合天天免费| 欧美大片在线观看| 五月婷婷激情综合| 99re亚洲国产精品| 国产女人18毛片水真多成人如厕| 日本欧美韩国一区三区| 欧美三区在线视频| 亚洲欧洲精品一区二区三区| 国产精品一区二区你懂的| 欧美一区二区精品| 日韩中文欧美在线| 精品婷婷伊人一区三区三| 亚洲精品视频一区二区| 99久久综合国产精品| 久久精品一区八戒影视| 精品中文字幕一区二区小辣椒 | 美国一区二区三区在线播放| 欧美三级视频在线观看| 伊人婷婷欧美激情| 一本色道久久综合精品竹菊| 国产精品久久看| 成av人片一区二区| 1024成人网色www| 成人高清免费在线播放| 欧美国产精品一区二区三区| 韩国精品一区二区| 2020国产精品久久精品美国| 久久精品国产久精国产| 欧美岛国在线观看| 国产综合久久久久久鬼色| 日韩欧美aaaaaa| 国产一区二区在线观看视频| 久久综合网色—综合色88| 精品一区二区三区久久| 久久亚洲欧美国产精品乐播| 国产黄色91视频| 国产精品免费视频一区| 91麻豆国产精品久久| 亚洲激情自拍偷拍| 欧美日韩一级二级| 奇米精品一区二区三区在线观看一| 日韩欧美一级二级三级| 激情久久五月天| 中文字幕一区二区三区不卡| 色网站国产精品| 亚欧色一区w666天堂| 日韩女优电影在线观看| 国产在线精品一区二区三区不卡 | 欧美午夜不卡视频| 婷婷综合久久一区二区三区| 欧美一区在线视频| 国产真实乱对白精彩久久| 欧美激情在线一区二区三区| 在线一区二区三区四区五区| 午夜激情久久久| 国产欧美视频在线观看| 在线看国产一区| 久久99精品国产麻豆婷婷| 国产女人18水真多18精品一级做| 日本道在线观看一区二区| 男女性色大片免费观看一区二区|