📄 mkdir.c
字号:
/*** make directory*/#include <signal.h>#include <stdio.h>int Errors = 0;char *strcat();char *strcpy();main(argc, argv)char *argv[];{ signal(SIGHUP, SIG_IGN); signal(SIGINT, SIG_IGN); signal(SIGQUIT, SIG_IGN); signal(SIGPIPE, SIG_IGN); signal(SIGTERM, SIG_IGN); if(argc < 2) { fprintf(stderr, "mkdir: arg count\n"); exit(1); } while(--argc) mkdir(*++argv); exit(Errors!=0);}mkdir(d)char *d;{ char pname[128], dname[128]; register i, slash = 0; pname[0] = '\0'; for(i = 0; d[i]; ++i) if(d[i] == '/') slash = i + 1; if(slash) strncpy(pname, d, slash); strcpy(pname+slash, "."); if (access(pname, 02)) { fprintf(stderr,"mkdir: cannot access %s\n", pname); ++Errors; return; } if ((mknod(d, 040777, 0)) < 0) { fprintf(stderr,"mkdir: cannot make directory %s\n", d); ++Errors; return; } chown(d, getuid(), getgid()); strcpy(dname, d); strcat(dname, "/."); if((link(d, dname)) < 0) { fprintf(stderr, "mkdir: cannot link %s\n", dname); unlink(d); ++Errors; return; } strcat(dname, "."); if((link(pname, dname)) < 0) { fprintf(stderr, "mkdir: cannot link %s\n",dname); dname[strlen(dname)] = '\0'; unlink(dname); unlink(d); ++Errors; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -