#include #include #include #include #include #include #include #include #include #include #define NODEFINE #include #include #include #include "fd.h" int pm_fstat(int fd, uchar *dat, int ndat) { int n; File *f; struct stat s; if((f = pm_lockfile(fd, 0)) == nil){ /* pm_fprint(2, "fstat: lockfile: %r\n"); */ return -1; } if(fstat(f->ufd, &s) < 0){ pm_oserror(); /* pm_fprint(2, "fstat: oserror: %r\n"); */ pm_qunlock(&f->lk); return -1; } n = pm_stat2buf(&s, f->path, dat, ndat); pm_qunlock(&f->lk); /* pm_fprint(2, "fstat: ret %d\n", n); */ return n; }