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

📄 deliver.c

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 C
字号:
#include "dat.h"#include "common.h"voidusage(void){	fprint(2, "usage: %s recipient fromfile mbox\n", argv0);	exits("usage");}voidmain(int argc, char **argv){	int fd;	char now[30];	Addr *a;	char *deliveredto;	Mlock *l;	int bytes;	ARGBEGIN{	}ARGEND;	if(argc != 3)		usage();	deliveredto = strrchr(argv[0], '!');	if(deliveredto == nil)		deliveredto = argv[0];	else		deliveredto++;	a = readaddrs(argv[1], nil);	if(a == nil)		sysfatal("missing from address");	l = syslock(argv[2]);	/* append to mbox */	fd = open(argv[2], OWRITE);	if(fd < 0)		sysfatal("opening mailbox: %r");	seek(fd, 0, 2);	strncpy(now, ctime(time(0)), sizeof(now));	now[28] = 0;	if(fprint(fd, "From %s %s\n", a->val, now) < 0)		sysfatal("writing mailbox: %r");	/* copy message handles escapes and any needed new lines */	bytes = appendfiletombox(0, fd);	if(bytes < 0)		sysfatal("writing mailbox: %r");	close(fd);	sysunlock(l);	/* log it */	syslog(0, "mail", "delivered %s From %s %s (%s) %d", deliveredto,		a->val, now, argv[0], bytes);	exits(0);}

⌨️ 快捷键说明

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