envinit.c

来自「speech signal process tools」· C语言 代码 · 共 78 行

C
78
字号
#include <stdio.h>#include <ctype.h>#define	SH	1#define	CSH	2#define	DEFSH	CSHFILE *	fopen();main(argc, argv)int argc;char **argv;{	register int shell;	register char *myname, *efile;	myname = *argv;	if (argc < 2 || argc > 3) {		fprintf(stderr, "usage: %s envfile [ sh | csh ]\n", myname);		exit(1);	}	efile = *++argv;	if (argc == 3)		if (!strcmp(*++argv, "sh"))			shell = SH;		else if (!strcmp(*argv, "csh"))			shell = CSH;		else {			fprintf(stderr, "usage: %s envfile [ sh | csh ]\n", myname);			exit(1);		}	else		shell = DEFSH;	envinit(efile, shell);	exit(0);}envinit(efile, shell)register char *efile;register int shell;{	char buf[BUFSIZ];	register int first;	register char *lval, *rval, *p;	register FILE *fp;	if (!(fp = fopen(efile, "r"))) {		perror(efile);		exit(2);	}	first = 1;	while (fgets(buf, BUFSIZ, fp)) {		if (*buf == '#' || *buf == '\n')			continue;		for (lval = buf; isspace(*lval); lval++)			;		for (rval = lval; !isspace(*rval); rval++)			;		*rval++ = (char)0;		for ( ; isspace(*rval); rval++)			;		for (p = rval; !isspace(*p); p++)			;		*p = (char)0;		if (!first)			printf(" ; ");		else			first = 0;		if (shell == SH) {			printf("%s=%s ; ", lval, rval);			printf("export %s", lval);		}		else			printf("setenv %s %s", lval, rval);	}	putchar('\n');}

⌨️ 快捷键说明

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