|
|
1.1 root 1: #ifndef lint
2: static char sccsid[] = "@(#)start.c 4.2 (Berkeley) 4/25/83";
3: #endif not lint
4:
5: #include "stdio.h"
6: #include "lrnref.h"
7: #include <sys/types.h>
8: #include <sys/dir.h>
9: #define ND 64
10:
11: start(lesson)
12: char *lesson;
13: {
14: struct direct dv[ND], *dm, *dp;
15: int f, c, n;
16: char where [100];
17:
18: f = open(".", 0); /* clean up play directory */
19: n = read(f, dv, ND*sizeof(*dp));
20: n /= sizeof(*dp);
21: if (n==ND)
22: fprintf(stderr, "Start: play directory too long\n");
23: dm = dv+n;
24: for(dp=dv; dp<dm; dp++)
25: if (dp->d_ino) {
26: n = strlen(dp->d_name);
27: if (dp->d_name[n-2] == '.' && dp->d_name[n-1] == 'c')
28: continue;
29: c = dp->d_name[0];
30: if (c>='a' && c<= 'z')
31: unlink(dp->d_name);
32: }
33: close(f);
34: if (ask)
35: return;
36: sprintf(where, "%s/%s/L%s", direct, sname, lesson);
37: if (access(where, 04)==0) /* there is a file */
38: return;
39: perror(where);
40: fprintf(stderr, "Start: no lesson %s\n",lesson);
41: wrapup(1);
42: }
43:
44: fcopy(new,old)
45: char *new, *old;
46: {
47: char b[BUFSIZ];
48: int n, fn, fo;
49: fn = creat(new, 0666);
50: fo = open(old,0);
51: if (fo<0) return;
52: if (fn<0) return;
53: while ( (n=read(fo, b, BUFSIZ)) > 0)
54: write(fn, b, n);
55: close(fn);
56: close(fo);
57: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.