emkdir.c
来自「一个C源代码分析器」· C语言 代码 · 共 86 行
C
86 行
#ifndef lint#ifndef NOIDstatic char elsieid[] = "@(#)emkdir.c 8.21";#endif /* !defined NOID */#endif /* !defined lint */#ifndef emkdir/*LINTLIBRARY*/#include "private.h"extern char * imalloc P((int n));extern void ifree P((char * p));static char *quoted(name)register const char * name;{ register char * result; register char * cp; register int c; if (name == NULL) name = ""; result = imalloc(4 * strlen(name) + 3); if (result == NULL) return NULL; cp = result;#ifdef unix *cp++ = '\''; while ((c = *name++) != '\0') if (c == '\'') { *cp++ = c; *cp++ = '\\'; *cp++ = c; *cp++ = c; } else *cp++ = c; *cp++ = '\'';#endif /* defined unix */#ifndef unix while ((c = *name++) != '\0') if (c == '/') *cp++ = '\\'; else *cp++ = c;#endif /* !defined unix */ *cp = '\0'; return result;}intemkdir(name, mode)const char * name;const int mode;{ register int result; register const char * format; register char * command; register char * qname; if ((qname = quoted(name)) == NULL) return -1;#ifdef unix format = "mkdir 2>&- %s && chmod 2>&- %o %s";#endif /* defined unix */#ifndef unix format = "mkdir %s";#endif /* !defined unix */ command = imalloc(strlen(format) + 2 * strlen(qname) + 20 + 1); if (command == NULL) { ifree(qname); return -1; } (void) sprintf(command, format, qname, mode, qname); ifree(qname); result = system(command); ifree(command); return (result == 0) ? 0 : -1;}/*** UNIX is a registered trademark of AT&T.*/#endif /* !defined emkdir */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?