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

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

?? buildfs.c

?? 這是有名的<<嵌入式系統TCP/IP應用層協議>>,M.Tim Jones 著
?? C
字號:
/*============================================================================ * buildfs.c * The build tool that takes a path and extracts the files for inclusion in * the static internal file system.  The output is a C source file that can * be compiled with the Embedded HTTP Server. * M. Tim Jones <mtj@cogitollc.com> *==========================================================================*/#include <stdio.h>#include <fcntl.h>#include <dirent.h>#include <errno.h>#include <unistd.h>#include <stdlib.h>#include <string.h>#include <sys/stat.h>#define BLK_SIZE	256#define OUTFILE         "filedata.c"/* File format: * *  FILE_HEADER           2 bytes *  FILE NAME             variable (null terminated) *  FILE SIZE             4 bytes *  FILE                  variable * */FILE *outfile;const unsigned char file_header[]={0xfa, 0xf3};int verbose = 0;static int counter = 0;/*---------------------------------------------------------------------------- * searchdir() - Walk through a directory and identify each file. *--------------------------------------------------------------------------*/void searchdir(char *dir){  DIR *dp;  struct dirent *entry;  struct stat statbuf;  static int dirsize = 0;  char fullname[BLK_SIZE]={0};  int writeFile( char *, char *, int );  if (dirsize == 0) {    dirsize = strlen(dir);  }  if ((dp = opendir(dir)) == NULL) {    return;  }  chdir(dir);  while ((entry = readdir(dp)) != NULL) {    lstat(entry->d_name, &statbuf);    if (S_ISDIR(statbuf.st_mode)) {      if (entry->d_name[0] == '.') continue;      searchdir(entry->d_name);    } else {      getcwd(fullname, BLK_SIZE);      if (strlen(fullname) > 1) strcat(fullname, "/");      strcat(fullname, entry->d_name);      if (verbose) {        printf("Cached %s, size %d\n",                 &fullname[dirsize], (int)statbuf.st_size);      }      writeFile(fullname, &fullname[dirsize], statbuf.st_size);    }  }  writeFile(NULL, NULL, 0);  chdir("..");  closedir(dp);}/*---------------------------------------------------------------------------- * writeHeader() - Write out the file header info. *--------------------------------------------------------------------------*/void writeHeader(void){  fprintf(outfile, "/*\n *  filedata.c\n *\n");  fprintf(outfile, " *  This file is dynamically generated.\n *\n");  fprintf(outfile, " *  mtj@cogitollc.com\n *\n */\n\n");  fprintf(outfile, "unsigned char filedata[]={");}/*---------------------------------------------------------------------------- * writeByte() - Write out a single byte to the file. *--------------------------------------------------------------------------*/void writeByte(unsigned char byte){  if ((counter++ % 12) == 0) fprintf(outfile, "\n ");  fprintf(outfile, " 0x%02x,", byte);}/*---------------------------------------------------------------------------- * writeFile() - Main routine to write the source file. *--------------------------------------------------------------------------*/int writeFile(char *inpfname, char *outfname, int size){  unsigned char *filedata;  FILE *fin;  int i, ret;  static int hdr = 0;  if (!hdr) {    writeHeader();    hdr=1;  }  if (inpfname != NULL) {    fin = fopen(inpfname, "rb");    filedata = (unsigned char *)malloc(size);    ret = fread(filedata, 1, size, fin);    if (ret != size) {      printf("Error reading %s (%d)\n", inpfname, errno);    } else {      fprintf(outfile, "\n\n  /* File: %s, size %d */\n", outfname, size);      counter = 0;      /* Emit the file header */      writeByte(file_header[0]);      writeByte(file_header[1]);            /* Emit the file name */      for (i = 0 ; i < strlen(outfname)+1 ; i++) {        writeByte(outfname[i]);      }      /* Emit the 4 byte length */      writeByte(((size >> 24) & 0xff));      writeByte(((size >> 16) & 0xff));      writeByte(((size >>  8) & 0xff));      writeByte((size & 0xff));      for (i = 0 ; i < size ; i++) {        writeByte(filedata[i]);      }    }    free(filedata);  } else {    writeByte(0); writeByte(0);  }  return 0;}/*---------------------------------------------------------------------------- * usage() - Help information. *--------------------------------------------------------------------------*/void usage(){  printf("\n    buildfs\n\n");  printf("\t-h            This help.\n");  printf("\t-v            Verbose mode.\n");  printf("\t-s <source>   Specify the root source directory.\n");  printf("\n");}/*---------------------------------------------------------------------------- * main() - main routeine for the buildfs tool. *--------------------------------------------------------------------------*/int main(int argc, char *argv[]){  int opt;  char sourcedir[128]={0};  while ((opt = getopt(argc, argv, "hvs:")) != -1) {    switch(opt) {      case 's':        strcpy(sourcedir, optarg);        break;      case 'v':        verbose = 1;        break;      case 'h':        usage();        exit(0);    }  }  if (sourcedir[0] == 0) {    usage();    exit(0);  }  outfile = fopen(OUTFILE, "wb");    searchdir(sourcedir);  fprintf(outfile, " 0x00, 0x00\n\n};\n");  fclose(outfile);  return 0;}/* *  Copyright (c) 2002 Charles River Media.  All rights reserved. *  *  Redistribution and use in source and binary forms, with or  *  without modification, is hereby granted without fee provided  *  that the following conditions are met: *  *    1.  Redistributions of source code must retain the above  *        copyright notice, this list of conditions and the  *        following disclaimer. *    2.  Redistributions in binary form must reproduce the above *        copyright notice, this list of conditions and the  *        following disclaimer in the documentation and/or other  *        materials provided with the distribution. *    3.  Neither the name of Charles River Media nor the names of  *        its contributors may be used to endorse or promote products  *        derived from this software without specific prior  *        written permission. *  * THIS SOFTWARE IS PROVIDED BY CHARLES RIVER MEDIA AND CONTRIBUTERS  * 'AS IS' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL CHARLES * RIVER MEDIA OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,  * INCIDENTAL, SPECIAL, EXEMPLARAY, OR CONSEQUENTIAL DAMAGES (INCLUDING,  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS  * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE  * POSSIBILITY OF SUCH DAMAGE. */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
五月天视频一区| 91精品国产色综合久久ai换脸 | 欧美一区二区在线播放| 国产精品日韩精品欧美在线| 久久99国产精品免费网站| 色哟哟一区二区在线观看| 亚洲精品在线电影| 麻豆91精品91久久久的内涵| 欧美日韩三级在线| 亚洲一区二区免费视频| 色狠狠桃花综合| 亚洲欧美日韩在线不卡| 欧美日韩一卡二卡| 麻豆91精品91久久久的内涵| 久久嫩草精品久久久久| www.色精品| 亚洲午夜电影网| 精品欧美久久久| 大尺度一区二区| 一区二区三区四区不卡视频| 欧美精品在线观看播放| 欧洲另类一二三四区| 水蜜桃久久夜色精品一区的特点 | 欧美性高清videossexo| 免费在线一区观看| 久久综合九色综合97婷婷| 成人avav影音| 亚洲第一在线综合网站| 26uuu国产电影一区二区| av综合在线播放| 天堂一区二区在线| 国产欧美日韩在线看| 91国偷自产一区二区三区观看 | 亚洲美女在线一区| 91精品国产91久久久久久最新毛片 | 欧美最新大片在线看 | 天堂久久一区二区三区| 国产亚洲欧美色| 欧美午夜电影在线播放| 国产一区二区免费在线| 亚洲激情网站免费观看| 欧美videos大乳护士334| 91视频在线看| 久久精品国产免费| 又紧又大又爽精品一区二区| 精品久久久久av影院| 在线亚洲欧美专区二区| 国产在线观看一区二区| 亚洲成人777| 国产精品久久久久婷婷| 日韩一二三区视频| 色婷婷av一区二区三区软件 | 亚洲va天堂va国产va久| 中文字幕av在线一区二区三区| 欧美猛男超大videosgay| 成人动漫一区二区在线| 日本在线观看不卡视频| 国产精品久久精品日日| 亚洲资源在线观看| 中文字幕av一区二区三区免费看| 欧美一卡二卡三卡| 欧美性videosxxxxx| 99国内精品久久| 国产精品一区二区在线观看网站| 肉丝袜脚交视频一区二区| 亚洲精品乱码久久久久久久久| 久久久久久免费毛片精品| 日韩一级高清毛片| 欧美日韩国产高清一区二区 | 国产亚洲美州欧州综合国| 成人avav在线| 欧美日韩一级黄| 97se狠狠狠综合亚洲狠狠| wwwwww.欧美系列| 顶级嫩模精品视频在线看| 免费不卡在线观看| 日韩在线a电影| 亚洲一区二区影院| 日韩一区有码在线| 国产精品成人免费精品自在线观看| 国产婷婷精品av在线| 久久这里只精品最新地址| 精品国内二区三区| 精品日韩在线一区| 26uuu亚洲婷婷狠狠天堂| 欧美videos大乳护士334| 日韩欧美激情四射| 亚洲精品一区二区三区影院| 久久综合给合久久狠狠狠97色69| 精品少妇一区二区三区免费观看 | 午夜欧美在线一二页| 一区二区三区视频在线看| 亚洲欧美日韩国产一区二区三区 | 欧美日韩一级片网站| 欧美日韩国产一级二级| 欧美精品高清视频| 日韩欧美成人激情| 亚洲精品在线三区| 中文字幕欧美激情| 亚洲综合男人的天堂| 午夜欧美在线一二页| 久久精品国产一区二区三区免费看 | 欧美三级一区二区| 91精品国产入口在线| 欧美精品一区二区三区一线天视频| 国产亚洲女人久久久久毛片| 成人免费在线播放视频| 亚洲成人黄色小说| 精品亚洲欧美一区| jlzzjlzz亚洲女人18| 欧美日韩国产高清一区| 精品久久久久久久久久久久包黑料 | 欧美精品一区二区三区视频| 欧美国产精品中文字幕| 亚洲综合色噜噜狠狠| 日本色综合中文字幕| 国产成+人+日韩+欧美+亚洲| 色综合久久88色综合天天免费| 欧美日韩一区久久| 久久久精品综合| 亚洲激情校园春色| 久国产精品韩国三级视频| www.色精品| 51午夜精品国产| 欧美激情一区二区三区| 亚洲国产精品欧美一二99| 激情欧美一区二区| 色老头久久综合| 精品国产一区二区三区av性色| 中文字幕色av一区二区三区| 日韩成人精品在线观看| www.欧美色图| 欧美tk—视频vk| 一区二区三区电影在线播| 国产乱淫av一区二区三区| 在线观看日韩精品| 国产视频一区在线观看| 亚洲sss视频在线视频| 国产精品18久久久久久久久| 欧美日韩在线播放三区| 国产精品久久久久久久久搜平片| 视频一区中文字幕国产| 成人av网址在线观看| xvideos.蜜桃一区二区| 香蕉成人啪国产精品视频综合网| 成人激情开心网| ww亚洲ww在线观看国产| 日本成人在线网站| 在线精品视频一区二区三四| 日本一区二区不卡视频| 激情综合色综合久久综合| 欧美亚洲一区二区在线观看| 国产精品久久久久久久久图文区| 韩国av一区二区| 日韩美女主播在线视频一区二区三区| 亚洲色图欧洲色图婷婷| 高清视频一区二区| 久久天天做天天爱综合色| 日韩国产一二三区| 欧美日韩精品一区二区在线播放| 一色屋精品亚洲香蕉网站| 国产乱色国产精品免费视频| 精品日韩成人av| 奇米精品一区二区三区在线观看 | 亚洲天堂成人在线观看| 国产一区二区三区日韩 | 欧美日精品一区视频| 亚洲啪啪综合av一区二区三区| 风间由美一区二区三区在线观看 | 精品国产免费人成在线观看| 日韩不卡免费视频| 欧美日韩国产区一| 午夜成人在线视频| 欧美色爱综合网| 亚洲国产一区二区三区| 欧美午夜宅男影院| 亚洲午夜精品在线| 欧美色图一区二区三区| 亚洲国产精品欧美一二99| 欧美日韩视频在线第一区| 午夜精品久久久久久| 777久久久精品| 麻豆91精品视频| 国产亚洲欧洲997久久综合| 成人三级在线视频| 亚洲女同女同女同女同女同69| 日本久久一区二区三区| 亚洲成av人片一区二区| 欧美一区二区网站| 国内成人免费视频| 中日韩av电影| 色婷婷综合久久久| 日日骚欧美日韩| 久久在线观看免费| 成人av第一页| 视频一区二区国产| 久久嫩草精品久久久精品一| aa级大片欧美| 日韩精品电影在线观看| 337p粉嫩大胆色噜噜噜噜亚洲|