dirmodefmt.c

来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· C语言 代码 · 共 49 行

C
49
字号
#include <u.h>#include <libc.h>#include <fcall.h>static char *modes[] ={	"---",	"--x",	"-w-",	"-wx",	"r--",	"r-x",	"rw-",	"rwx",};static voidrwx(long m, char *s){	strncpy(s, modes[m], 3);}intdirmodefmt(Fmt *f){	static char buf[16];	ulong m;	m = va_arg(f->args, ulong);	if(m & DMDIR)		buf[0]='d';	else if(m & DMAPPEND)		buf[0]='a';	else if(m & DMAUTH)		buf[0]='A';	else		buf[0]='-';	if(m & DMEXCL)		buf[1]='l';	else		buf[1]='-';	rwx((m>>6)&7, buf+2);	rwx((m>>3)&7, buf+5);	rwx((m>>0)&7, buf+8);	buf[11] = 0;	return fmtstrcpy(f, buf);}

⌨️ 快捷键说明

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