这周承蒙XDY看得起,让我学着做一个类似于Cron的小工具,我感动不已饿,然后看了会cron的源码,开始有点不淡定了,发现自己的competence可能不足以完成如此重任,况且近期对coding又无很大的兴趣.
不过不管怎么样,不应该让他失望吧,作为一个真正意义上的mentor,能跟着他做东西,学东西是很难得的机会啊
后来XDY又给我看了他写了的一部分,发现还是从中学到了不少,他让我放弃面向对象的思想用纯C写,结果我写出来的代码一看就是面向对象的C,几乎所有的函数第一个参数都是一个结构体,类似于this指针传进去那样.但是他的代码读起来却流畅,易懂简洁无比.
typedef struct _user { struct _user *next, *prev; /* links */ char *name; time_t mtime; /* last modtime of crontab */ entry *crontab; /* this person's crontab */ } user; typedef struct _cron_db { user *head, *tail; /* links */ time_t mtime; /* last modtime on spooldir */ } cron_db; typedef struct _entry { struct _entry *next; struct passwd *pwd; char **envp; char *cmd; int flags; } entry; typedef struct _job { struct _job *next; entry *e; user *u; } job; static job *jhead = NULL, *jtail = NULL;