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

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

?? mread.c

?? MTOOLS version 2.0 Mtools is a public domain collection of programs to allow Unix systems t
?? C
字號:
/* * Read (copy) an MSDOS file to Unix * * Emmet P. Gray			US Army, HQ III Corps & Fort Hood * ...!uunet!uiucuxc!fthood!egray	Attn: AFZF-DE-ENV * fthood!egray@uxc.cso.uiuc.edu	Directorate of Engineering & Housing * 					Environmental Management Office * 					Fort Hood, TX 76544-5057 */#define LOWERCASE#include <stdio.h>#include <ctype.h>#include <sys/types.h>#include <sys/stat.h>#ifdef BSD#include <sys/time.h>#else /* BSD */#include <time.h>#endif /* BSD */#include "msdos.h"#include "patchlevel.h"int fd = -1;				/* the file descriptor for the device */int dir_start;				/* starting sector for directory */int dir_len;				/* length of directory (in sectors) */int dir_entries;			/* number of directory entries */int clus_size;				/* cluster size (in sectors) */char *mcwd;				/* the Current Working Directory */int fat_error;				/* FAT error detected? */static void set_mtime();static FILE *open_file();static long conv_stamp();main(argc, argv)int argc;char *argv[];{	FILE *fp;	extern int optind;	extern char *optarg;	int i, ismatch, entry, single, c, oops, preserve, nowarn, textmode;	int got_one, missed_one;	unsigned int fat;	long size, mtime;	char *filename, *newfile, *get_name(), *unix_name(), *pathname;	char *get_path(), *target, tmp[MAX_PATH], *strcat(), *strcpy(), drive;	char get_drive(), last_drive, *fix_mcwd(), *s;	void exit();	struct directory *dir, *dir_read();	struct stat stbuf;					/* get command line options */	oops = 0;	preserve = 0;	nowarn = 0;	textmode = 0;	got_one = 0;	missed_one = 0;	while ((c = getopt(argc, argv, "tnmv")) != EOF) {		switch (c) {			case 't':				textmode = 1;				break;			case 'n':				nowarn = 1;				break;			case 'm':				preserve = 1;				break;			case 'v':	/* dummy option for mcopy */				break;			default:				oops = 1;				break;		}	}	if (oops || (argc - optind) < 2) {		fprintf(stderr, "Mtools version %s, dated %s\n", VERSION, DATE);		fprintf(stderr, "Usage: %s [-tnm] msdosfile unixfile\n", argv[0]);		fprintf(stderr, "       %s [-tnm] msdosfile [msdosfiles...] unixdirectory\n", argv[0]);		exit(1);	}	last_drive = 'x';	mcwd = fix_mcwd();					/* only 1 file to copy... */	single = 1;	target = argv[argc - 1];					/* ...unless last arg is a directory */	if (!stat(target, &stbuf)) {		if ((stbuf.st_mode & S_IFMT) == S_IFDIR)			single = 0;	}					/* too many arguments */	if (single && (argc - optind) != 2) {		fprintf(stderr, "%s: Too many arguments or destination directory omitted\n", argv[0]);		exit(1);	}	for (i = optind; i < argc - 1; i++) {		drive = get_drive(argv[i]);		if (drive != last_drive) {			if (init(drive, 0)) {				fprintf(stderr, "%s: Cannot initialize '%c:'\n", argv[0], drive);				missed_one++;				continue;			}			last_drive = drive;		}		filename = get_name(argv[i]);		pathname = get_path(argv[i]);		if (subdir(drive, pathname)) {			missed_one++;			continue;		}		ismatch = 0;		for (entry = 0; entry < dir_entries; entry++) {			dir = dir_read(entry);					/* if empty */			if (dir->name[0] == 0x0)				break;					/* if erased */			if (dir->name[0] == 0xe5)				continue;					/* if dir or volume label */			if ((dir->attr & 0x10) || (dir->attr & 0x08))				continue;			newfile = unix_name(dir->name, dir->ext);					/* if single file */			if (single) {				if (!strcmp(newfile, filename)) {					fat = dir->start[1] * 0x100 + dir->start[0];					size = dir->size[3] * 0x1000000L + dir->size[2] * 0x10000L + dir->size[1] * 0x100 + dir->size[0];					if (preserve)						mtime = conv_stamp(dir->time, dir->date);					else						mtime = 0L;					if ((fp = open_file(target, nowarn))) {						if (file_read(fp, fat, textmode, 0, size)) {							fclose(fp);							missed_one++;							break;						}						fclose(fp);						set_mtime(target, mtime);						ismatch = 1;						got_one++;					}					else						missed_one++;					break;				}			}					/* if multiple files */			else {				if (match(newfile, filename)) {					fat = dir->start[1] * 0x100 + dir->start[0];					size = dir->size[3] * 0x1000000L + dir->size[2] * 0x10000L + dir->size[1] * 0x100 + dir->size[0];					if (preserve)						mtime = conv_stamp(dir->time, dir->date);					else						mtime = 0L;					printf("Copying %s\n", newfile);#ifdef LOWERCASE					s = newfile;					while (*s) {						if (isupper(*s))							*s = tolower(*s);						s++;					}#endif /* LOWERCASE */					strcpy(tmp, target);					strcat(tmp, "/");					strcat(tmp, newfile);					if ((fp = open_file(tmp, nowarn))) {						if (file_read(fp, fat, textmode, 0, size)) {							fclose(fp);							missed_one++;							break;						}						fclose(fp);						set_mtime(tmp, mtime);						ismatch = 1;						got_one++;					}					else						missed_one++;				}			}		}		if (fat_error) {			missed_one++;			break;		}		if (!ismatch) {			fprintf(stderr, "%s: File \"%s\" not found\n", argv[0], filename);			missed_one++;		}	}	close(fd);	if (got_one && missed_one)		exit(2);	if (missed_one)		exit(1);	exit(0);}/* * Open the named Unix file for write. */static FILE *open_file(target, nowarn)char *target;int nowarn;{	static FILE *fp;	char ans[10];	struct stat stbuf;	if (!nowarn) {		if (!access(target, 0)) {			/* CONSTCOND */			while (1) {				printf("File \"%s\" exists, overwrite (y/n) ? ", target);				gets(ans);				if (ans[0] == 'n' || ans[0] == 'N')					return(NULL);				if (ans[0] == 'y' || ans[0] == 'Y')					break;			}					/* sanity checking */			if (!stat(target, &stbuf)) {				if ((stbuf.st_mode & S_IFREG) != S_IFREG) {					fprintf(stderr, "\"%s\" is not a regular file\n", target);					return(NULL);				}			}		}	}	if (!(fp = fopen(target, "w"))) {		fprintf(stderr, "Can't open \"%s\" for write\n", target);		return(NULL);	}	return(fp);}/* * Convert an MSDOS time & date stamp to the Unix time() format */static longconv_stamp(time_field, date_field)unsigned char *time_field, *date_field;{#ifdef BSD	struct timeval tv;	struct timezone tz;#else /* BSD */	extern long timezone;	void tzset();#endif /* BSD */	struct tm *tmbuf, *localtime();	int year, mon, mday, hour, min, sec, old_leaps;	long answer, sec_year, sec_mon, sec_mday, sec_hour, sec_min, sec_leap;	long tzone, dst;	static int month[] = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304,	334};					/* dissect the parts */	year = (date_field[1] >> 1) + 1980;	mon = (((date_field[1] & 0x1) << 3) + (date_field[0] >> 5));	mday = date_field[0] & 0x1f;	hour = time_field[1] >> 3;	min = (((time_field[1] & 0x7) << 3) + (time_field[0] >> 5));	sec = (time_field[0] & 0x1f) * 2;					/* how many previous leap years */	old_leaps = (year - 1972) / 4L;	sec_leap = old_leaps * 24L * 60L * 60L;					/* back off 1 day if before 29 Feb */	if (!(year % 4) && mon < 3)		sec_leap -= 24L * 60L * 60L;	sec_year = (year - 1970) * 365L * 24L * 60L * 60L;	sec_mon = month[mon - 1] * 24L * 60L * 60L;	sec_mday = mday * 24L * 60L * 60L;	sec_hour = hour * 60L * 60L;	sec_min = min * 60L;					/* correct for Time Zone */#ifdef BSD	gettimeofday(&tv, &tz);	tzone = tz.tz_minuteswest * 60L;#else /* BSD */	tzset();	tzone = timezone;#endif /* BSD */	answer = sec_leap + sec_year + sec_mon + sec_mday + sec_hour + sec_min + sec + tzone;					/* correct for Daylight Saving Time */	tmbuf = localtime(&answer);	dst = (tmbuf->tm_isdst) ? (-60L * 60L) : 0L;	answer += dst;		return(answer);}/* * Preserve the file modification times after the fclose() */static voidset_mtime(target, mtime)char *target;long mtime;{#ifdef BSD	struct timeval tv[2];	if (mtime != 0L) {		tv[0].tv_sec = mtime;		tv[0].tv_usec = 0;		tv[1].tv_sec = mtime;		tv[1].tv_usec = 0;		utimes(target, tv);	}#else /* BSD */	struct {		time_t actime;		time_t modtime;	} utbuf;	if (mtime != 0L) {		utbuf.actime = mtime;		utbuf.modtime = mtime;		utime(target, &utbuf);	}#endif /* BSD */	return;}/* * stubs for read-only programs */voiddisk_flush(){	extern int disk_dirty;	disk_dirty = 0;	return;}voiddir_flush(){	extern int dir_dirty;	dir_dirty = 0;	return;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜精品久久久久久久久| 久久精品国产精品亚洲红杏| 亚洲国产视频在线| 精品一区二区免费看| 91免费看`日韩一区二区| 精品日韩在线一区| 亚洲高清在线精品| 成人免费看视频| 日韩欧美亚洲国产另类| 中文字幕日韩av资源站| 狠狠久久亚洲欧美| 欧美精三区欧美精三区| 亚洲三级免费电影| 国产成人精品免费一区二区| 日韩视频免费直播| 亚洲图片欧美视频| 日本国产一区二区| 国产欧美日韩精品在线| 久久国产尿小便嘘嘘尿| 在线成人免费视频| 亚洲一区日韩精品中文字幕| 成人精品gif动图一区| 精品国精品自拍自在线| 蜜桃av一区二区在线观看| 欧美色精品天天在线观看视频| 肉色丝袜一区二区| 欧美性受xxxx黑人xyx性爽| 国产情人综合久久777777| 奇米四色…亚洲| 在线观看91av| 天天综合网天天综合色| 欧美三级韩国三级日本三斤| 亚洲午夜久久久久久久久电影网| 亚洲自拍都市欧美小说| 91社区在线播放| 日本一区二区高清| 丰满放荡岳乱妇91ww| 精品国产sm最大网站免费看| 极品少妇xxxx偷拍精品少妇| 26uuu精品一区二区在线观看| 久久欧美中文字幕| 国产精品一线二线三线| 国产亚洲1区2区3区| 国产成人精品亚洲午夜麻豆| 久久久久久**毛片大全| 国产精品一区久久久久| 久久久久综合网| 国产成人精品亚洲777人妖| 国产精品久久久久久久久晋中 | 91精品免费观看| 一区二区三区蜜桃网| 色婷婷一区二区三区四区| 亚洲大片一区二区三区| 欧美精品九九99久久| 激情伊人五月天久久综合| 26uuuu精品一区二区| 成人永久aaa| 亚洲一区在线免费观看| 欧美一区二区视频在线观看2022| 欧美精品一区二区三区在线播放| 中文字幕一区二区三区四区| 91免费视频观看| 日韩1区2区3区| 久久久久久日产精品| 99精品1区2区| 日本不卡中文字幕| 国产女同互慰高潮91漫画| 91国内精品野花午夜精品| 日本不卡一区二区三区| 国产精品美女一区二区三区| 欧美日韩黄色一区二区| 国产一区二区三区四区在线观看| 欧美在线不卡视频| 麻豆成人免费电影| 国产精品女主播av| 日韩一区二区三区视频在线| 成人激情午夜影院| 蜜臀av亚洲一区中文字幕| 国产精品无人区| 91精品国产综合久久久蜜臀图片| 亚洲少妇中出一区| 日韩欧美国产一二三区| kk眼镜猥琐国模调教系列一区二区| 精品国产91乱码一区二区三区| 亚洲国产精品一区二区www在线| 成人网页在线观看| 日韩精品成人一区二区三区 | 国产美女视频91| 亚洲无人区一区| 国产精品丝袜在线| 7777精品伊人久久久大香线蕉的 | 免费日本视频一区| 亚洲靠逼com| 国产欧美日韩激情| 日韩欧美国产成人一区二区| 欧美在线视频不卡| 高清不卡一区二区在线| 老司机一区二区| 亚洲自拍另类综合| 亚洲免费av在线| 国产精品久久久一本精品| 欧美精品一区二区三| 欧美伦理影视网| 欧美性大战久久| 一本久久综合亚洲鲁鲁五月天| 亚洲一区av在线| 亚洲精品日韩专区silk| 国产精品国产三级国产普通话三级| 成人美女视频在线观看| 国产精品亚洲午夜一区二区三区| 久久精品人人做人人综合 | 丝袜a∨在线一区二区三区不卡 | 91在线视频18| 成人免费视频播放| 国产一区高清在线| 久热成人在线视频| 另类小说图片综合网| 麻豆91精品91久久久的内涵| 视频一区国产视频| 日精品一区二区三区| 婷婷亚洲久悠悠色悠在线播放 | 91精品婷婷国产综合久久竹菊| 蜜乳av一区二区| 日韩电影一区二区三区四区| 视频一区二区不卡| 免费一区二区视频| 精品制服美女丁香| 国产麻豆9l精品三级站| 国产成人aaa| 91麻豆国产精品久久| 色伊人久久综合中文字幕| 色94色欧美sute亚洲13| 欧美区在线观看| 欧美刺激脚交jootjob| 久久久精品黄色| 亚洲婷婷综合色高清在线| 亚洲一级片在线观看| 人人爽香蕉精品| 国产成人自拍在线| 色悠悠久久综合| 91精品国产一区二区三区蜜臀| 成人涩涩免费视频| 欧美羞羞免费网站| 精品国产麻豆免费人成网站| 国产精品理论片| 亚洲国产精品一区二区久久| 裸体一区二区三区| 不卡av电影在线播放| 欧美日韩一区视频| 国产午夜精品久久久久久久 | 亚洲电影在线播放| 久久99精品一区二区三区| 成人午夜伦理影院| 欧美精品xxxxbbbb| 国产精品系列在线| 日本不卡视频在线观看| 成人av在线网| 日韩精品自拍偷拍| 一区免费观看视频| 不卡在线观看av| 欧美精品aⅴ在线视频| 日本一区二区成人在线| 图片区小说区区亚洲影院| 国内精品免费**视频| 91成人在线免费观看| 国产色产综合产在线视频| 亚洲综合精品自拍| 粉嫩一区二区三区在线看| 欧美一区二区三区小说| 亚洲欧美aⅴ...| 国产成人鲁色资源国产91色综| 久久99久久久欧美国产| 色综合久久中文综合久久牛| 久久综合精品国产一区二区三区| 精品三级av在线| 亚洲第一搞黄网站| 成人av综合一区| 日韩欧美一二区| 午夜激情一区二区| 91在线观看免费视频| 久久久99精品久久| 美国三级日本三级久久99| 欧美中文一区二区三区| 中文字幕综合网| 成人综合在线视频| 久久婷婷综合激情| 日本在线观看不卡视频| 欧美日韩一级黄| 亚洲狠狠丁香婷婷综合久久久| 岛国精品在线观看| 久久精品在线观看| 激情欧美一区二区三区在线观看| 精品一区二区在线观看| 欧美一区二区三区在线观看| 亚洲午夜在线电影| 一本到不卡免费一区二区| 国产精品网站在线播放| 国产成人精品三级麻豆| 中文字幕乱码日本亚洲一区二区 | 91在线观看高清|