read.cgi改良スレッド

このエントリーをはてなブックマークに追加
85デフォルトの名無しさん
>>49 >>55 のをmmap()化してみたり mmap()化で変わる部分だけ抜粋

int fd;

fd = open(fname, O_RDONLY);
if (fp >= 0) {
 /* SETTING_R.TXTを読む */
 char *cptr;
 void *mmptr;
 struct stat st;
 fstat(fd, &st);
 mmptr = mmap(NULL, st.st_size, PROT_READ, MAP_SHARED, fd, 0);
 for (cptr = mmptr; cptr && *cptr; cptr = strchr(cptr, '\n'), cptr?cptr++:0) {
  if (*cptr != '\n' && *cptr != '#' && *cptr != ';') {
   if (!strncmp(cptr, "zz_FORCE_304_TIME=", 18)) {
    zz_FORCE_304_TIME = atoi(cptr+18);
   }
  } /*else if () {}*/
 }
 munmap(mmptr, st.st_size);
 close(fd);
}

# それにしても ここにそのままコード貼り付けると半角スペースがつぶれて
# インデントがなくなっちゃうから不便だぁ