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

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

?? touch.c

?? 操作系統源代碼
?? C
字號:
/* touch - update file times			Author: Peter Holzer *//* Touch - change file access and modification times. * * Usage: see end of file * * Conforms to P1003.2 draft 10, sec. 4.62, except that time values * are not checked for validity, but passed on to mktime, so that * 9301990000 will refer to Apr. 9th 1993. As a side effect, leap * seconds are not handled correctly. * * Authors: Original author unknown. Rewritten for POSIX by  *	Peter Holzer (hp@vmars.tuwien.ac.at). * * $Id: touch.c,v 1.8 1994/03/17 21:39:19 hjp Exp $ * $Log: touch.c,v $ * Revision 1.8  1994/03/17  21:39:19  hjp * fixed bug with 4-digit years * * Revision 1.7  1994/03/15  00:43:27  hjp * Changes from kjb (vmd 1.6.25.1): * fixed exit code * nonstandard flag 0 to make file very old * * Revision 1.6  1994/02/12  17:26:33  hjp * fixed -a and -m flags * * Revision 1.5  1994/02/12  16:04:13  hjp * fixed bug when -t argument was not given * removed debugging code * run through pretty to get Minix layout * * Revision 1.4  1994/02/07  21:23:11  hjp * POSIXified. * */#define _POSIX_C_SOURCE 2	/* getopt */#include <assert.h>#include <ctype.h>#include <sys/types.h>#include <sys/stat.h>#include <errno.h>#include <stdlib.h>#include <stdio.h>#include <string.h>#include <time.h>#include <fcntl.h>#include <unistd.h>#include <utime.h>#define val2(string) ((string)[0] * 10 + (string)[1] - '0' * 11)#define val4(string) (val2(string) * 100 + val2(string + 2))typedef enum {  OLD, NEW} formatT;char *cmnd;int no_creat = 0;unsigned int to_change = 0;#	define ATIME	1#	define MTIME	2_PROTOTYPE(int main, (int argc, char **argv));_PROTOTYPE(int doit, (char *name, struct utimbuf tvp));_PROTOTYPE(void usage, (void));_PROTOTYPE(time_t parsetime, (const char *string, formatT format));time_t parsetime(string, format)const char *string;formatT format;{  struct tm tm;  time_t touchtime;  size_t l;  l = strspn(string, "0123456789");  if (l % 2 == 1) return -1;  if (string[l] != '\0' && (string[l] != '.' || format == OLD)) {	return -1;  }  if (format == OLD) {	if (l == 10) {		/* Last two digits are year */		tm.tm_year = val2(string + 8);		if (tm.tm_year <= 68) tm.tm_year += 100;	} else if (l == 8) {		time(&touchtime);		tm = *localtime(&touchtime);	} else {		return -1;	}  } else {	if (l == 12) {		/* First four digits are year */		tm.tm_year = val4(string) - 1900;		string += 4;	} else if (l == 10) {		/* First two digits are year */		tm.tm_year = val2(string);		if (tm.tm_year <= 68) tm.tm_year += 100;		string += 2;	} else if (l == 8) {		time(&touchtime);		tm = *localtime(&touchtime);	} else {		return -1;	}  }  tm.tm_mon = val2(string) - 1;  string += 2;  tm.tm_mday = val2(string);  string += 2;  tm.tm_hour = val2(string);  string += 2;  tm.tm_min = val2(string);  string += 2;  if (format == NEW && string[0] == '.') {	if (isdigit(string[1]) && isdigit(string[2]) &&	    string[3] == '\0') {		tm.tm_sec = val2(string + 1);	} else {		return -1;	}  } else {	tm.tm_sec = 0;  }  tm.tm_isdst = -1;  touchtime = mktime(&tm);  return touchtime;}int main(argc, argv)int argc;char **argv;{  time_t auxtime;  struct stat sb;  int c;  struct utimbuf touchtimes;  int fail = 0;  cmnd = argv[0];  auxtime = time((time_t *) NULL);  touchtimes.modtime = auxtime;  touchtimes.actime = auxtime;  while ((c = getopt(argc, argv, "r:t:acm0")) != EOF) {	switch (c) {	    case 'r':		if (stat(optarg, &sb) == -1) {			fprintf(stderr, "%s: cannot stat %s: %s\n",				cmnd, optarg, strerror(errno));			exit(1);		}		touchtimes.modtime = sb.st_mtime;		touchtimes.actime = sb.st_atime;		break;	    case 't':		auxtime = parsetime(optarg, NEW);		if (auxtime == (time_t) - 1) usage();		touchtimes.modtime = auxtime;		touchtimes.actime = auxtime;		break;	    case 'a':	to_change |= ATIME;	break;	    case 'm':	to_change |= MTIME;	break;	    case 'c':	no_creat = 1;	break;	    case '0':		touchtimes.modtime = touchtimes.actime = 0;		break;	    case '?':	usage();	break;	    default:	assert(0);	}  }  if (to_change == 0) {	to_change = ATIME | MTIME;  }  if (optind == argc) usage();  /* Now check for old style time argument */  if (strcmp(argv[optind - 1], "--") != 0 &&      (auxtime = parsetime(argv[optind], OLD)) != (time_t) - 1) {	touchtimes.modtime = auxtime;	touchtimes.actime = auxtime;	optind++;	if (optind == argc) usage();  }  while (optind < argc) {	if (doit(argv[optind], touchtimes) > 0) {		fprintf(stderr, "%s: cannot touch %s: %s\n",			cmnd, argv[optind], strerror(errno));		fail = 1;	}	optind++;  }  return fail ? 1 : 0;}int doit(name, tvp)char *name;struct utimbuf tvp;{  int fd;  struct stat sb;  if (to_change != (ATIME | MTIME)) {	if (stat(name, &sb) != -1) {		if (!(to_change & ATIME)) {			tvp.actime = sb.st_atime;		} else {			tvp.modtime = sb.st_mtime;		}	}  }  if (utime(name, &tvp) == 0) return 0;  if (errno != ENOENT) return 1;  if (no_creat == 1) return 0;  if ((fd = creat(name, 0666)) >= 0) {	if (fstat(fd, &sb) != -1) {		if (!(to_change & ATIME)) {			tvp.actime = sb.st_atime;		} else {			tvp.modtime = sb.st_mtime;		}	} else {		assert(0);	}	close(fd);	if (utime(name, &tvp) == 0) return 0;  }  return 1;}void usage(){  fprintf(stderr, "Usage: %s [-c] [-a] [-m] [-r file] [-t [CC[YY]]MMDDhhmm[.ss]] "	"[MMDDhhmm[YY]] file...\n", cmnd);  exit(1);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一区二区电影| 91精品国产91久久综合桃花| 精品一区二区三区在线观看国产| 一区二区三区美女视频| 亚洲另类在线制服丝袜| 一区二区三区精品视频| 亚洲精品少妇30p| 亚洲美女偷拍久久| 亚洲综合偷拍欧美一区色| 亚洲一区在线观看网站| 婷婷中文字幕综合| 图片区小说区国产精品视频| 日本不卡高清视频| 国产精品一级在线| 成人午夜又粗又硬又大| 本田岬高潮一区二区三区| 一本色道久久综合亚洲91| 91福利小视频| 日韩免费性生活视频播放| 久久天堂av综合合色蜜桃网| 国产精品久久精品日日| 粉嫩蜜臀av国产精品网站| 成人免费视频caoporn| 色哟哟一区二区| 日韩一区二区三区四区| 久久精子c满五个校花| 亚洲欧美欧美一区二区三区| 视频一区二区欧美| 粉嫩av一区二区三区| 欧美系列日韩一区| 精品国产欧美一区二区| 自拍av一区二区三区| 日韩黄色免费网站| 成人免费不卡视频| 91精品欧美一区二区三区综合在| 久久久不卡网国产精品二区| 亚洲精品综合在线| 国产一区二区三区不卡在线观看| 91在线无精精品入口| 日韩欧美一区中文| 亚洲欧美日韩久久| 看国产成人h片视频| 91麻豆免费看片| 日韩欧美国产午夜精品| 亚洲人成亚洲人成在线观看图片| 日本欧美韩国一区三区| 97se亚洲国产综合在线| 久久亚洲综合色一区二区三区| 亚洲欧美日韩在线| 国产成人福利片| 日韩视频一区二区在线观看| 成人欧美一区二区三区1314| 国产乱码精品一区二区三区av| 欧美午夜寂寞影院| 亚洲色图在线播放| 大胆亚洲人体视频| 欧美va天堂va视频va在线| 午夜视黄欧洲亚洲| 在线亚洲高清视频| 亚洲免费观看高清在线观看| 国产成人一级电影| 精品国产欧美一区二区| 免费欧美日韩国产三级电影| 欧美美女一区二区| 亚洲一区二区三区视频在线播放| 成人免费看的视频| 日本一区二区三区dvd视频在线| 精品无人码麻豆乱码1区2区| 日韩一区国产二区欧美三区| 午夜电影网亚洲视频| 欧美日韩成人激情| 亚洲mv在线观看| 欧美日韩卡一卡二| 天堂在线亚洲视频| 91精品国产综合久久国产大片| 亚洲国产成人精品视频| 欧美日韩一二区| 丝袜国产日韩另类美女| 3d动漫精品啪啪| 日本三级韩国三级欧美三级| 91精品婷婷国产综合久久竹菊| 视频在线观看一区| 3d动漫精品啪啪一区二区竹菊| 免费在线观看日韩欧美| 精品国产乱码久久久久久久| 国产精品一区二区在线观看不卡| 久久久久久久免费视频了| 国产高清一区日本| 亚洲欧洲精品一区二区三区不卡| av在线这里只有精品| 亚洲精品写真福利| 欧美日本高清视频在线观看| 美女视频黄频大全不卡视频在线播放| 欧美一级二级三级乱码| 国产ts人妖一区二区| 亚洲欧美一区二区三区孕妇| 欧美日韩国产区一| 激情综合色丁香一区二区| 中文字幕国产一区| 在线影视一区二区三区| 日本午夜精品一区二区三区电影| 久久新电视剧免费观看| 91免费观看在线| 青草国产精品久久久久久| 亚洲国产成人一区二区三区| 欧美日韩视频一区二区| 国产制服丝袜一区| 亚洲激情中文1区| 精品欧美久久久| 色哟哟一区二区在线观看| 麻豆精品国产91久久久久久| 中文字幕免费观看一区| 欧美日韩激情一区二区| 国产精品资源在线观看| 亚洲一区二区三区在线| 久久久久久久久一| 欧美日韩一区高清| 91亚洲精品久久久蜜桃| 日本91福利区| 亚洲尤物视频在线| 亚洲国产激情av| 欧美一级片在线看| 91亚洲精品一区二区乱码| 蜜桃免费网站一区二区三区| 亚洲天堂a在线| 久久尤物电影视频在线观看| 欧美亚洲高清一区二区三区不卡| 国产精品一区二区91| 免费精品99久久国产综合精品| 成人免费小视频| 久久久91精品国产一区二区精品| 在线成人高清不卡| 在线观看视频一区二区| www.成人在线| 高清在线不卡av| 日韩av午夜在线观看| 亚洲资源中文字幕| 综合久久综合久久| 国产精品丝袜一区| 国产拍欧美日韩视频二区| 精品国产在天天线2019| 91精品欧美综合在线观看最新| 在线欧美日韩国产| 在线看一区二区| 色香蕉久久蜜桃| 色天天综合久久久久综合片| 白白色 亚洲乱淫| 粉嫩aⅴ一区二区三区四区五区| 狠狠色丁香婷婷综合久久片| 久久精品国产免费| 日本不卡视频在线| 另类小说色综合网站| 美女视频第一区二区三区免费观看网站| 亚洲一二三区不卡| 亚洲一二三级电影| 日韩精品成人一区二区三区| 天天影视网天天综合色在线播放| 亚洲综合精品自拍| 亚洲va中文字幕| 日韩电影在线观看网站| 日韩有码一区二区三区| 青青青爽久久午夜综合久久午夜 | 日韩午夜精品视频| 欧美成人综合网站| 久久精品欧美一区二区三区麻豆 | 色94色欧美sute亚洲线路一久| 97精品久久久久中文字幕| 色综合久久66| 欧美日韩黄色影视| 精品奇米国产一区二区三区| 久久蜜臀中文字幕| 综合欧美一区二区三区| 亚洲精品福利视频网站| 亚洲二区视频在线| 极品少妇一区二区三区精品视频 | 亚洲va天堂va国产va久| 免费在线观看一区| 成人av影院在线| 欧美亚洲动漫制服丝袜| 欧美不卡一区二区| 国产精品的网站| 奇米在线7777在线精品| 床上的激情91.| 欧美日韩精品三区| 久久丝袜美腿综合| 亚洲一区中文日韩| 国产精品资源网| 欧美视频精品在线| 精品福利一二区| 一区二区三区在线视频免费| 久久99日本精品| 色一区在线观看| 欧美本精品男人aⅴ天堂| 亚洲视频狠狠干| 激情六月婷婷久久| 在线看一区二区| 中文字幕精品在线不卡| 肉肉av福利一精品导航| 97精品国产97久久久久久久久久久久| 日韩一级高清毛片|