|
|
1.1 ! root 1: /* ! 2: char id_fstat[] = "@(#)fstat_.c 1.3"; ! 3: * ! 4: * get file status ! 5: * ! 6: * calling sequence: ! 7: * integer fstat, statb(12) ! 8: * call fstat (name, statb) ! 9: * where: ! 10: * 'statb' will receive the stat structure for file 'name'. ! 11: */ ! 12: ! 13: #include <sys/types.h> ! 14: #include <sys/stat.h> ! 15: #include "../libI77/f_errno.h" ! 16: #include "../libI77/fiodefs.h" ! 17: ! 18: extern unit units[]; ! 19: ! 20: long fstat_(lunit, stbuf) ! 21: long *lunit, *stbuf; ! 22: { ! 23: struct stat statb; ! 24: ! 25: if (*lunit < 0 || *lunit >= MXUNIT) ! 26: return((long)(errno=F_ERUNIT)); ! 27: if (!units[*lunit].ufd) ! 28: return((long)(errno=F_ERNOPEN)); ! 29: if (fstat(fileno(units[*lunit].ufd), &statb) == 0) ! 30: { ! 31: *stbuf++ = statb.st_dev; ! 32: *stbuf++ = statb.st_ino; ! 33: *stbuf++ = statb.st_mode; ! 34: *stbuf++ = statb.st_nlink; ! 35: *stbuf++ = statb.st_uid; ! 36: *stbuf++ = statb.st_gid; ! 37: *stbuf++ = statb.st_rdev; ! 38: *stbuf++ = statb.st_size; ! 39: *stbuf++ = statb.st_atime; ! 40: *stbuf++ = statb.st_mtime; ! 41: *stbuf++ = statb.st_ctime; ! 42: *stbuf++ = statb.st_blksize; ! 43: return(0L); ! 44: } ! 45: return ((long)errno); ! 46: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.