shio.c

来自「unix v7是最后一个广泛发布的研究型UNIX版本」· C语言 代码 · 共 45 行

C
45
字号
#include "uucp.h"/******* *	shio(cmd, fi, fo, user)	execute shell of command with *	char *cmd, *fi, *fo;	fi and fo as standard input/output *	char *user;		user name * *	return codes: *		0  - ok *		non zero -  failed  -  status from child */shio(cmd, fi, fo, user)char *cmd, *fi, *fo, *user;{	int status, f;	int uid, pid, ret;	char path[MAXFULLNAME];	if (fi == NULL)		fi = "/dev/null";	if (fo == NULL)		fo = "/dev/null";	DEBUG(3, "shio - %s\n", cmd);	if ((pid = fork()) == 0) {		close(Ifn);		close(Ofn);		close(0);		f = open(fi, 0);		ASSERT(f == 0, "BAD OPEN fileno %d", f);		close(1);		f = creat(fo, 0666);		ASSERT(f == 1, "BAD OPEN fileno %d", f);		if (gninfo(user, &uid, path) == 0)			setuid(uid);		execl(SHELL, "sh", "-c", cmd, 0);		exit(100);	}	while ((ret = wait(&status)) != pid && ret != -1);	DEBUG(3, "status %d\n", status);	return(status);}

⌨️ 快捷键说明

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