dirfstat.c - 9base - revived minimalist port of Plan 9 userland to Unix
 (HTM) git clone git://git.suckless.org/9base
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
       dirfstat.c (511B)
       ---
            1 #include <u.h>
            2 #define NOPLAN9DEFINES
            3 #include <libc.h>
            4 
            5 #include <sys/stat.h>
            6 
            7 extern int _p9dir(struct stat*, struct stat*, char*, Dir*, char**, char*);
            8 
            9 Dir*
           10 dirfstat(int fd)
           11 {
           12         struct stat st;
           13         int nstr;
           14         Dir *d;
           15         char *str, tmp[100];
           16 
           17         if(fstat(fd, &st) < 0)
           18                 return nil;
           19 
           20         snprint(tmp, sizeof tmp, "/dev/fd/%d", fd);
           21         nstr = _p9dir(&st, &st, tmp, nil, nil, nil);
           22         d = mallocz(sizeof(Dir)+nstr, 1);
           23         if(d == nil)
           24                 return nil;
           25         str = (char*)&d[1];
           26         _p9dir(&st, &st, tmp, d, &str, str+nstr);
           27         return d;
           28 }
           29