deliver.c
来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· C语言 代码 · 共 61 行
C
61 行
#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 + =
减小字号Ctrl + -
显示快捷键?