mkdir.c
来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· C语言 代码 · 共 81 行
C
81 行
#include <u.h>#include <libc.h>char *e;ulong mode = 0777L;voidusage(void){ fprint(2, "usage: mkdir [-p] [-m mode] dir...\n"); exits("usage");}intmakedir(char *s){ int f; if(access(s, AEXIST) == 0){ fprint(2, "mkdir: %s already exists\n", s); e = "error"; return -1; } f = create(s, OREAD, DMDIR | mode); if(f < 0){ fprint(2, "mkdir: can't create %s: %r\n", s); e = "error"; return -1; } close(f); return 0;}voidmkdirp(char *s){ char *p; for(p=strchr(s+1, '/'); p; p=strchr(p+1, '/')){ *p = 0; if(access(s, AEXIST) != 0 && makedir(s) < 0) return; *p = '/'; } if(access(s, AEXIST) != 0) makedir(s);}voidmain(int argc, char *argv[]){ int i, pflag; char *m; pflag = 0; ARGBEGIN{ default: usage(); case 'm': m = ARGF(); if(m == nil) usage(); mode = strtoul(m, &m, 8); if(mode > 0777) usage(); break; case 'p': pflag = 1; break; }ARGEND for(i=0; i<argc; i++){ if(pflag) mkdirp(argv[i]); else makedir(argv[i]); } exits(e);}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?