⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 touch.c

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 C
字号:
#include <u.h>#include <libc.h>int touch(int, char *);ulong now;voidusage(void){	fprint(2, "usage: touch [-c] [-t time] files\n");	exits("usage");}voidmain(int argc, char **argv){	char *t, *s;	int nocreate = 0;	int status = 0;	now = time(0);	ARGBEGIN{	case 't':		t = EARGF(usage());		now = strtoul(t, &s, 0);		if(s == t || *s != '\0')			usage();		break;	case 'c':		nocreate = 1;		break;	default:			usage();	}ARGEND	if(!*argv)		usage();	while(*argv)		status += touch(nocreate, *argv++);	if(status)		exits("touch");	exits(0);}touch(int nocreate, char *name){	Dir stbuff;	int fd;	nulldir(&stbuff);	stbuff.mtime = now;	if(dirwstat(name, &stbuff) >= 0)		return 0;	if(nocreate){		fprint(2, "touch: %s: cannot wstat: %r\n", name);		return 1;	}	if((fd = create(name, OREAD|OEXCL, 0666)) < 0){		fprint(2, "touch: %s: cannot create: %r\n", name);		return 1;	}	dirfwstat(fd, &stbuff);	close(fd);	return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -