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

📄 selsub.c

📁 unix v7是最后一个广泛发布的研究型UNIX版本
💻 C
字号:
#include "stdio.h"#include "lrnref"selsub(argc,argv)char *argv[];{	char ans1[100], *cp;	static char ans2[30];	static char dirname[20];	static char subname[20];	if (argc > 1 && argv[1][0] == '-') {		direct = argv[1]+1;		argc--;		argv++;	}	chknam(direct);	if (chdir(direct) != 0) {		fprintf(stderr, "can't cd to %s\,", direct);		exit(1);	}	sname = argc > 1 ? argv[1] : 0;	if (argc > 2)		strcpy (level=ans2, argv[2]);	else		level = 0;	if (argc > 3 )		speed = atoi(argv[3]);	if (!sname) {		printf("These are the available courses -\n");		list("Linfo");		printf("If you want more information about the courses,\n");		printf("or if you have never used 'learn' before,\n");		printf("type 'return'; otherwise type the name of\n");		printf("the course you want, followed by 'return'.\n");		fflush(stdout);		gets(sname=subname);		if (sname[0] == '\0') {			list("Xinfo");			do {				printf("\nWhich subject?  ");				fflush(stdout);				gets(sname=subname);			} while (sname[0] == '\0');		}	}	chknam(sname);	if (!level) {		printf("If you were in the middle of this subject\n");		printf("and want to start where you left off, type\n");		printf("the last lesson number the computer printed.\n");		printf("To start at the beginning, just hit return.\n");		fflush(stdout);		gets(ans2);		if (ans2[0]==0)			strcpy(ans2,"0");		for (cp=ans2; *cp; cp++)			if (*cp == '(' || *cp == ' ')				*cp= 0;		level=ans2;	}	/* make new directory for user to play in */	if (chdir("play") != 0) {		fprintf(stderr, "can't cd to playpen\n");		exit(1);	}	sprintf(dir=dirname, "pl%da", getpid());	sprintf(ans1, "mkdir %s", dir);	system(ans1);	if (chdir(dir) < 0) {		fprintf(stderr, "Couldn't create working directory.\nBye.\n");		exit(1);	}	/* after this point, we have a working directory. */	/* have to call wrapup to clean up */	if (access(sprintf(ans1, "%s/%s/Init", direct, sname), 04)==0)		if (system(sprintf(ans1, "%s/%s/Init %s", direct,sname, level)) != 0) {			printf("Leaving learn.\n");			wrapup(1);		}	if (level[0] == '-')	/* no lesson names start with - */		ask = 1;	start(level);}chknam(name)char *name;{	if (access(name, 05) < 0) {		printf("Sorry, there is no subject or lesson named %s.\nBye.\n", name);		exit(1);	}}

⌨️ 快捷键说明

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