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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ntdirent.c

?? Mehldau和Myer的Agrep3版本
?? C
字號:
/* 
   dir.c for MS-DOS by Samuel Lam <skl@van-bc.UUCP>, June/87 
*/ 
 
/* #ifdef WIN32 */
/* 
 * @(#)dir.c 1.4 87/11/06 Public Domain. 
 * 
 *  A public domain implementation of BSD directory routines for 
 *  MS-DOS.  Written by Michael Rendell ({uunet,utai}michael@garfield), 
 *  August 1897 
 *  Ported to OS/2 by Kai Uwe Rommel 
 *  December 1989, February 1990 
 *  Ported to Windows NT 22 May 91 
 *    other mods Summer '92 brianmo@microsoft.com 
 *  opendirx() was horribly written, very inefficient, and did not take care
 *    of all cases.  It is still not too clean, but it is far more efficient.
 *    Changes made by Gordon Chaffee (chaffee@bugs-bunny.cs.berkeley.edu)
 */ 
 
 
/*Includes: 
 *	crt 
 */ 
#include <windows.h>
#include <stdlib.h> 
#include <string.h> 
#include <sys\types.h> 
#include <sys\stat.h> 
#include "ntdirent.h" 

#define stat _stat

/* 
 *	NT specific 
 */ 
#include <stdio.h> 
 
/* 
 *	random typedefs 
 */ 
#define HDIR        HANDLE 
#define HFILE       HANDLE 
#define PHFILE      PHANDLE 
 
/* 
 *	local functions 
 */ 
static char *getdirent(char *); 
static void free_dircontents(struct _dircontents *); 
 
static HDIR				FindHandle; 
static WIN32_FIND_DATA	FileFindData; 
 
static struct dirent dp; 
 
DIR *opendirx(char *name, char *pattern) 
{ 
    struct stat statb; 
    DIR *dirp; 
    char c; 
    char *s; 
    struct _dircontents *dp; 
    int len;
    int unc;
    char path[ OFS_MAXPATHNAME ]; 
    register char *ip, *op;

    for (ip = name, op = path; ; op++, ip++) {
	*op = *ip;
	if (*ip == '\0') {
	    break;
	}
    }
    len = ip - name;
    if (len > 0) {
	unc = ((path[0] == '\\' || path[0] == '/') &&
	       (path[1] == '\\' || path[1] == '/'));
	c = path[len - 1];
	if (unc) {
	    if (c != '\\' && c != '/') {
		path[len] = '/';
		len++;
		path[len] ='\0';
	    }
	} else {
	    if ((c == '\\' || c == '/') && (len > 1)) {
		len--;
		path[len] = '\0';
 
		if (path[len - 1] == ':' ) {
		    path[len] = '/'; len++;
		    path[len] = '.'; len++;
		    path[len] = '\0';
		}
	    } else if (c == ':' ) {
		path[len] = '.';
		len++;
		path[len] ='\0';
	    }
	}
    } else {
	unc = 0;
	path[0] = '.';
	path[1] = '\0';
	len = 1;
    }
 
    if (stat(path, &statb) < 0 || (statb.st_mode & S_IFMT) != S_IFDIR) {
	return NULL; 
    }

    dirp = malloc(sizeof(DIR));
    if (dirp == NULL) {
	return dirp;
    }
 
    c = path[len - 1];
    if (c == '.' ) {
	if (len == 1) {
	    len--;
	} else {
	    c = path[len - 2];
	    if (c == '\\' || c == ':') {
		len--;
	    } else {
		path[len] = '/';
		len++;
	    }
	}
    } else if (!unc && ((len != 1) || (c != '\\' && c != '/'))) {
	path[len] = '/';
	len++;
    }
    strcpy(path + len, pattern);
 
    dirp -> dd_loc = 0; 
    dirp -> dd_contents = dirp -> dd_cp = NULL; 
 
    if ((s = getdirent(path)) == NULL) {
	return dirp;
    }
 
    do 
    { 
	if (((dp = malloc(sizeof(struct _dircontents))) == NULL) || 
	    ((dp -> _d_entry = malloc(strlen(s) + 1)) == NULL)      ) 
	{ 
	    if (dp) 
		free(dp); 
	    free_dircontents(dirp -> dd_contents); 
 
	    return NULL; 
	} 
 
	if (dirp -> dd_contents) 
	    dirp -> dd_cp = dirp -> dd_cp -> _d_next = dp; 
	else 
	    dirp -> dd_contents = dirp -> dd_cp = dp; 
 
	strcpy(dp -> _d_entry, s); 
	dp -> _d_next = NULL; 
 
    } 
    while ((s = getdirent(NULL)) != NULL); 
 
    dirp -> dd_cp = dirp -> dd_contents; 
    return dirp; 
} 
 
DIR *opendir(char *name)
{
  return opendirx(name, "*");
} 

void closedir(DIR * dirp) 
{ 
  free_dircontents(dirp -> dd_contents); 
  free(dirp); 
} 
 
struct dirent *readdir(DIR * dirp) 
{ 
  /* static struct dirent dp; */ 
  if (dirp -> dd_cp == NULL) 
    return NULL; 
 
  /*strcpy(dp.d_name,dirp->dd_cp->_d_entry); */ 
 
  dp.d_name = dirp->dd_cp->_d_entry; 
 
  dp.d_namlen = dp.d_reclen = 
    strlen(dp.d_name); 
 
  dp.d_ino = dirp->dd_loc+1; /* fake the inode */ 
 
  dirp -> dd_cp = dirp -> dd_cp -> _d_next; 
  dirp -> dd_loc++; 
 
 
  return &dp; 
} 
 
void seekdir(DIR * dirp, long off) 
{ 
  long i = off; 
  struct _dircontents *dp; 
 
  if (off >= 0) 
  { 
    for (dp = dirp -> dd_contents; --i >= 0 && dp; dp = dp -> _d_next); 
 
    dirp -> dd_loc = off - (i + 1); 
    dirp -> dd_cp = dp; 
  } 
} 
 
 
long telldir(DIR * dirp) 
{ 
  return dirp -> dd_loc; 
} 
 
static void free_dircontents(struct _dircontents * dp) 
{ 
  struct _dircontents *odp; 
 
  while (dp) 
  { 
    if (dp -> _d_entry) 
      free(dp -> _d_entry); 
 
    dp = (odp = dp) -> _d_next; 
    free(odp); 
  } 
} 
/* end of "free_dircontents" */ 
 
static char *getdirent(char *dir) 
{ 
    int got_dirent; 

    if (dir != NULL) 
    {				       /* get first entry */ 
	if ((FindHandle = FindFirstFile( dir, &FileFindData )) 
	    == (HDIR)0xffffffff) 
	{ 
	    return NULL; 
	} 
	got_dirent = 1;
    } 
    else				       /* get next entry */ 
	got_dirent = FindNextFile( FindHandle, &FileFindData ); 
 
    if (got_dirent) 
	return FileFindData.cFileName; 
    else 
    { 
	FindClose(FindHandle); 
	return NULL; 
    } 
} 
/* end of getdirent() */ 

struct passwd * _cdecl
getpwnam(char *name)
{
    return NULL;
}

struct passwd * _cdecl
getpwuid(int uid)
{
    return NULL;
}

int
getuid()
{
    return 0;
}

void _cdecl
endpwent(void)
{
}

/* #endif */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人国产亚洲欧美成人综合网| 夜夜亚洲天天久久| 韩国欧美国产1区| 久久久国产一区二区三区四区小说 | 蜜桃视频在线观看一区| 日韩午夜中文字幕| 国产精品一二三四五| 日本一区二区成人| 99免费精品视频| 日韩在线观看一区二区| 日韩精品在线网站| 成人性生交大合| 一区二区三区欧美| 欧美一个色资源| 成人黄色国产精品网站大全在线免费观看| 国产精品嫩草影院av蜜臀| 91蜜桃婷婷狠狠久久综合9色| 亚洲综合在线视频| 日韩欧美国产一二三区| 风流少妇一区二区| 亚洲午夜羞羞片| 久久影视一区二区| 91女神在线视频| 日韩电影在线免费看| 国产欧美日韩卡一| 欧美日韩国产系列| 国产·精品毛片| 亚洲高清久久久| 中文字幕乱码亚洲精品一区| 在线观看免费亚洲| 国产在线一区观看| 亚洲黄色免费网站| 久久久久久久久久久99999| 一本大道综合伊人精品热热| 久久99精品久久久久久国产越南 | 《视频一区视频二区| 制服丝袜av成人在线看| 国产69精品久久777的优势| 午夜不卡av在线| 综合久久一区二区三区| 精品久久久久久久久久久久久久久久久| 东方aⅴ免费观看久久av| 亚洲成av人片在www色猫咪| 国产日韩欧美a| 欧美精品在线视频| 91原创在线视频| 国产精品亚洲一区二区三区妖精| 亚洲成av人片一区二区梦乃| 国产精品成人免费在线| 精品国产一区二区三区四区四| 色偷偷成人一区二区三区91| 国产精品综合网| 久久精品久久综合| 亚洲成va人在线观看| 日韩一区中文字幕| 日本一区二区三区高清不卡| 日韩一级大片在线观看| 欧美日韩一级视频| 色菇凉天天综合网| av在线不卡电影| 成人精品免费看| 国产精品中文字幕欧美| 国内精品免费在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲福利一区二区| 亚洲国产精品天堂| 亚洲一区二区在线视频| 亚洲黄色av一区| 亚洲欧美精品午睡沙发| 亚洲人成亚洲人成在线观看图片 | 不卡视频在线观看| 风流少妇一区二区| 国产成人精品网址| 国产91精品入口| 成a人片国产精品| 成人黄页在线观看| 99国产一区二区三精品乱码| 成人性色生活片免费看爆迷你毛片| 国产一区二三区好的| 国产在线日韩欧美| 国产精品一区二区黑丝| 国产电影一区在线| 丰满少妇在线播放bd日韩电影| 国产suv精品一区二区三区| 国产suv精品一区二区883| 成人av动漫网站| 日本高清不卡一区| 欧美日韩亚洲高清一区二区| 欧美精品久久99久久在免费线| 日韩一区二区三| 精品国产一二三区| 中文字幕欧美激情| 综合久久综合久久| 五月天婷婷综合| 久久国产福利国产秒拍| 国产夫妻精品视频| 91麻豆.com| 在线成人av影院| 精品国产a毛片| 亚洲私人黄色宅男| 污片在线观看一区二区| 久久精品国产免费看久久精品| 国产成人免费视频精品含羞草妖精| 成人网在线免费视频| 91成人在线观看喷潮| 91精品国产入口在线| 久久久影视传媒| 亚洲免费视频中文字幕| 蜜臀精品一区二区三区在线观看| 国产精品自在在线| 91久久精品一区二区三| 日韩免费高清视频| 国产精品高潮呻吟| 午夜欧美电影在线观看| 国产成人在线免费观看| 欧美性大战久久久久久久| 337p日本欧洲亚洲大胆精品| 亚洲女与黑人做爰| 激情伊人五月天久久综合| 91在线观看下载| 日韩精品中午字幕| 一区二区三区四区中文字幕| 激情欧美日韩一区二区| 欧美日韩在线播放一区| 国产午夜精品福利| 日本在线观看不卡视频| 成人精品国产一区二区4080| 欧美一区三区二区| 中文字幕中文字幕在线一区| 另类小说欧美激情| 欧美性色综合网| 国产精品理论在线观看| 久热成人在线视频| 欧美亚洲国产bt| 中文字幕成人av| 久久精品噜噜噜成人av农村| 欧美午夜电影网| 国产精品久久三| 国模娜娜一区二区三区| 欧美欧美欧美欧美首页| 亚洲色图一区二区三区| 国产成人综合在线| 日韩免费观看2025年上映的电影| 亚洲综合区在线| 色综合亚洲欧洲| 国产精品成人一区二区三区夜夜夜| 激情另类小说区图片区视频区| 制服.丝袜.亚洲.另类.中文| 亚洲国产三级在线| 色婷婷精品久久二区二区蜜臀av | 久久国产精品99久久人人澡| 欧美婷婷六月丁香综合色| 国产精品对白交换视频| 国产成人免费在线视频| 精品国产成人在线影院 | 在线观看成人小视频| 国产精品美女视频| 成人免费视频一区二区| 国产亚洲精品精华液| 国内精品伊人久久久久影院对白| 日韩欧美国产精品| 久久 天天综合| 日韩一区二区三区高清免费看看| 日韩av一区二区在线影视| 欧美人妇做爰xxxⅹ性高电影| 亚洲二区视频在线| 911国产精品| 蜜臀av性久久久久av蜜臀妖精| 91精品国产福利在线观看| 手机精品视频在线观看| 欧美日韩中文精品| 日本免费新一区视频| 欧美一区二区私人影院日本| 日韩在线一区二区三区| 欧美va亚洲va| 黄网站免费久久| 国产欧美日韩在线视频| 成人av电影在线网| 亚洲欧美色综合| 欧亚洲嫩模精品一区三区| 婷婷成人激情在线网| 日韩一区二区不卡| 国产美女娇喘av呻吟久久| 国产喷白浆一区二区三区| 成人性视频免费网站| 一区二区三区在线观看网站| 欧美日韩一级大片网址| 日本免费在线视频不卡一不卡二 | 欧美激情一区不卡| 99re视频精品| 亚洲国产精品久久久久秋霞影院| 欧美福利视频导航| 韩国毛片一区二区三区| 亚洲欧洲av色图| 欧美高清激情brazzers| 国产精品一级黄| 亚洲一区二区三区四区五区黄 | 国产午夜久久久久| 97se狠狠狠综合亚洲狠狠| 午夜精品在线视频一区|