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

📄 9iounit.c

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 C
字号:
#include "lib.h"#include <string.h>#include <stdlib.h>#include <fmt.h>#include "sys9.h"#include "dir.h"/* * Format:  3 r  M    4 (0000000000457def 11 00)   8192      512 /rc/lib/rcmain */static intgetfields(char *str, char **args, int max, int mflag){	char r;	int nr, intok, narg;	if(max <= 0)		return 0;	narg = 0;	args[narg] = str;	if(!mflag)		narg++;	intok = 0;	for(;;) {		r = *str++;		if(r == 0)			break;		if(r == ' ' || r == '\t'){			if(narg >= max)				break;			*str = 0;			intok = 0;			args[narg] = str + nr;			if(!mflag)				narg++;		} else {			if(!intok && mflag)				narg++;			intok = 1;		}	}	return narg;}int_IOUNIT(int fd){	int i, cfd;	char buf[128], *args[10];	snprint(buf, sizeof buf, "#d/%dctl", fd);	cfd = _OPEN(buf, OREAD);	if(cfd < 0)		return 0;	i = _READ(cfd, buf, sizeof buf-1);	_CLOSE(cfd);	if(i <= 0)		return 0;	buf[i] = '\0';	if(getfields(buf, args, 10, 1) != 10)		return 0;	return atoi(args[7]);}

⌨️ 快捷键说明

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