5 * Revision 1.2 1997/02/04 17:34:35 mclareni
6 * Merge Winnt and 97a versions
8 * Revision 1.1.1.1.2.1 1997/01/21 11:29:36 mclareni
9 * All mods for Winnt 96a on winnt branch
11 * Revision 1.1.1.1 1996/02/15 17:49:29 mclareni
15 #include "kerngen/pilot.h"
16 #if defined(CERNLIB_WINNT)
17 #include "wntgs/lstati.c"
18 #elif defined(CERNLIB_QMDOS)
19 #include "dosgs/lstati.c"
20 #elif defined(CERNLIB_QMIRTD)
21 #include "irtdgs/lstati.c"
24 CERN PROGLIB# Z265 LSTATI .VERSION KERNFOR 4.39 940228
25 C ORIG. 24/03/91, RDM + JZ
26 Fortran interface routine to lstat
29 #include <sys/types.h>
31 #include "kerngen/fortchar.h"
32 #if defined(CERNLIB_QX_SC)
33 int lstati_(fname, info, lgname, slate)
35 #if defined(CERNLIB_QXNO_SC)
36 int lstati(fname, info, lgname, slate)
38 #if defined(CERNLIB_QXCAPT)
39 int LSTATI(fname, info, lgname, slate)
41 #if defined(CERNLIB_QMCRY)
44 #if !defined(CERNLIB_QMCRY)
52 char *ptname, *fchtak();
56 ptname = fchtak(fname,*lgname);
57 if (ptname == NULL) goto out1;
59 buf = (struct stat *) malloc(sizeof (struct stat));
60 if (buf == NULL) goto out2;
62 istat = lstat(ptname, buf);
65 info[0] = (int) buf->st_dev;
66 info[1] = (int) buf->st_ino;
67 info[2] = (int) buf->st_mode;
68 info[3] = (int) buf->st_nlink;
69 info[4] = (int) buf->st_uid;
70 info[5] = (int) buf->st_gid;
71 info[6] = (int) buf->st_size;
72 info[7] = (int) buf->st_atime;
73 info[8] = (int) buf->st_mtime;
74 info[9] = (int) buf->st_ctime;
75 #if (!defined(CERNLIB_QMSGI))&&(!defined(CERNLIB_QMDOS))
76 info[10] = (int) buf->st_blksize;
77 info[11] = (int) buf->st_blocks;
79 #if defined(CERNLIB_QMSGI)||defined(CERNLIB_QMDOS)
83 *slate++ = (buf->st_mode & S_IFMT) ^ S_IFREG;
84 *slate++ = (buf->st_mode & S_IFMT) ^ S_IFLNK;
85 *slate++ = (buf->st_mode & S_IFMT) ^ S_IFDIR;
93 /*> END <----------------------------------------------------------*/