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