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

📄 swap.c

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 C
字号:
#include <u.h>#include <libc.h>void error(char *);voidmain(int argc, char **argv){	Dir *d;	int swapfd, cswfd;	char buf[128], *p;	int i, j;	if(argc != 2) {		print("Usage: swap path\n");		exits("swap: failed");	}	d = dirstat(argv[1]);	if(d == nil){		print("swap: can't stat %s: %r\n", argv[1]);		exits("swap: failed");	}	if(d->type != 'M'){		/* kernel device */		swapfd = open(argv[1], ORDWR);		p = argv[1];	}	else {		p = getenv("sysname");		if(p == 0)			p = "swap";		sprint(buf, "%s/%sXXXXXXX", argv[1], p);		p = mktemp(buf);		swapfd = create(p, ORDWR|ORCLOSE, 0600);	}	if(swapfd < 0 || (p[0] == '/' && p[1] == '\0')) {		print("swap: failed to make a file: %r\n");		exits("swap: failed");	}	i = create("/env/swap", OWRITE, 0666);	if(i < 0) 		error("open /env/swap");	if(write(i, p, strlen(p)) != strlen(p))		error("sysname");	close(i);	print("swap: %s\n", p);	cswfd = open("/dev/swap", OWRITE);	if(cswfd < 0)		error("open: /dev/swap");	j = sprint(buf, "%d", swapfd);	if(write(cswfd, buf, j) != j)		error("write: /dev/swap");	exits(0);}voiderror(char *s){	perror(s);	exits(s);}

⌨️ 快捷键说明

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