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

📄 getlesson.c

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 C
字号:
#ifndef lintstatic char sccsid[] = "@(#)getlesson.c	4.2	(Berkeley)	4/26/83";#endif not lint#include "stdio.h"#include "lrnref.h"char *getlesson(){	register char *p;	char ans[80], line[200];	int isnum, found, fd[2];	FILE *fp;	sprintf(ans, "%s/%s/L%s", direct, sname, level);	if (access(ans, 04) == 0)		/* there is a file */		return(level);	isnum = 1;	for (p=level; *p; p++)		/* accept:  (digit|dot)*anychar  */		if (*p != '.' && (*p < '0' || *p > '9') && *(p+1) != '\0')			isnum = 0;	if (isnum) {		strcpy(line, level);		p = level;		while (*p != '.' && *p >= '0' && *p <= '9')			p++;		*p = '\0';		strcat(level, ".1a");		sprintf(ans, "%s/%s/L%s", direct, sname, level);		if (access(ans, 04) == 0) {	/* there is a file */			printf("There is no lesson %s; trying lesson %s instead.\n\n", line, level);			return(level);		}		printf("There is no lesson %s.\n", line);		return(0);	}	/* fgrep through lessons for one containing the string in 'level' */	pipe(fd);	if (fork() == 0) {		close(fd[0]);		dup2(fd[1], 1);		sprintf(ans,"cd %s/%s ; fgrep '%s' L?.* L??.* L???.*", direct, sname, level);		execl("/bin/csh", "csh", "-cf", ans, 0);		perror("/bin/csh");		fprintf(stderr, "Getlesson:  can't do %s\n", ans);	}	close(fd[1]);	fp = fdopen(fd[0], "r");	found = 0;	while (fgets(line, 200, fp) != NULL) {		for (p=line; *p != ':'; p++) ;		p++;		if (*p == '#')			continue;		else {			found = 1;			break;		}	}	/*fclose(fp);*/	if (found) {		*--p = '\0';		strcpy(level, &line[1]);		sprintf(ans, "%s/%s/L%s", direct, sname, level);		if (access(ans, 04) == 0) {	/* there is a file */			printf("Trying lesson %s.\n\n", level);			return(level);		}	}	printf("There is no lesson containing \"%s\".\n", level);	return(0);}

⌨️ 快捷键说明

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