blob: d1922bf91e697a4995f2793a61a3e875a06aa5c9 [file] [log] [blame]
rscfd04aac2003-11-23 18:12:54 +00001#include <u.h>
2#define NOPLAN9DEFINES
3#include <libc.h>
4
5#include <sys/stat.h>
6
rsc2acd6fa2005-02-08 20:17:02 +00007extern int _p9dir(struct stat*, struct stat*, char*, Dir*, char**, char*);
rscfd04aac2003-11-23 18:12:54 +00008
9Dir*
10dirfstat(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);
rsc2acd6fa2005-02-08 20:17:02 +000021 nstr = _p9dir(&st, &st, tmp, nil, nil, nil);
rscfd04aac2003-11-23 18:12:54 +000022 d = mallocz(sizeof(Dir)+nstr, 1);
23 if(d == nil)
24 return nil;
25 str = (char*)&d[1];
rsc0a229052005-02-08 20:08:28 +000026 _p9dir(&st, &st, tmp, d, &str, str+nstr);
rscfd04aac2003-11-23 18:12:54 +000027 return d;
28}
29