📄 unix.c
字号:
#include <u.h>#include <libc.h>#include <bio.h>#include <libsec.h>#include <libproto.h>#include <ctype.h>#include "iso9660.h"#include <grp.h>#include <pwd.h>typedef struct Xarg Xarg;struct Xarg { void (*enm)(char*,char*,XDir*,void*); void (*warn)(char*,void*); void *arg;};static long numericuid(char *user);static long numericgid(char *gp);voiddirtoxdir(XDir *xd, Dir *d){ // char buf[NAMELEN+1]; memset(xd, 0, sizeof *xd); xd->name = atom(d->name); xd->uid = atom(d->uid); xd->gid = atom(d->gid); xd->uidno = numericuid(d->uid); xd->gidno = numericgid(d->gid); xd->mode = d->mode; xd->atime = d->atime; xd->mtime = d->mtime; xd->ctime = 0; xd->length = d->length; if(xd->mode & CHLINK) { xd->mode |= 0777; xd->symlink = atom(d->symlink); }};voidfdtruncate(int fd, ulong size){ ftruncate(fd, size); return;}static longnumericuid(char *user){ struct passwd *pass; static int warned = 0; if (! (pass = getpwnam(user))) { if (!warned) fprint(2, "Warning: getpwnam(3) failed for \"%s\"\n", user); warned = 1; return 0; } return pass->pw_uid;}static longnumericgid(char *gp){ struct group *gr; static int warned = 0; if (! (gr = getgrnam(gp))) { if (!warned) fprint(2, "Warning: getgrnam(3) failed for \"%s\"\n", gp); warned = 1; return 0; } return gr->gr_gid;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -