]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MINICERN/packlib/kernlib/kerngen/ccgen/irtdgs/lstati.c
This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / MINICERN / packlib / kernlib / kerngen / ccgen / irtdgs / lstati.c
1 *
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.1.1.1  1996/02/15 17:49:31  mclareni
6 * Kernlib
7 *
8 *
9 /*>    ROUTINE LSTATI
10   CERN PROGLIB# Z265    LSTATI          .VERSION KERNIRT  1.06  930811
11 C ORIG. 24/03/91, RDM + JZ
12   Fortran interface routine to lstat
13 */
14 #include <stdio.h>
15 #include <sys/types.h>
16 #include <sys/stat.h>
17 #include "kerngen/fortchar.inc"
18 #if defined(CERNLIB_QX_SC)
19 int lstati_(fname, info, lgname, slate)
20 #endif
21 #if defined(CERNLIB_QXNO_SC)
22 int lstati(fname, info, lgname, slate)
23 #endif
24 #if defined(CERNLIB_QXCAPT)
25 int LSTATI(fname, info, lgname, slate)
26 #endif
27       int  *lgname;
28       int  *info;
29       int  *slate;
30 {
31       struct stat *buf;
32       char *ptname, *fchtak();
33       int  istat, lstat();
34
35       istat  = -1;
36       ptname = fchtak(fname,*lgname);
37       if (ptname == NULL)          goto out1;
38
39       buf = (struct stat *) malloc(sizeof (struct stat));
40       if (buf == NULL)             goto out2;
41
42       istat = lstat(ptname, buf);
43
44 /     if (!istat) {
45          info[0] = (int) buf->st_dev;
46          info[2] = (int) buf->st_ino;
47          info[4] = (int) buf->st_mode;
48          info[6] = (int) buf->st_nlink;
49          info[8] = (int) buf->st_uid;
50          info[10] = (int) buf->st_gid;
51          info[12] = (int) buf->st_size;
52          info[14] = (int) buf->st_atime;
53          info[16] = (int) buf->st_mtime;
54          info[18] = (int) buf->st_ctime;
55          info[20] = (int) buf->st_blksize;
56          info[22] = (int) buf->st_blocks;
57          *slate++ = (buf->st_mode & S_IFMT) ^ S_IFREG;
58          *slate++ = (buf->st_mode & S_IFMT) ^ S_IFLNK;
59          *slate++ = (buf->st_mode & S_IFMT) ^ S_IFDIR;
60        };
61
62       free(buf);
63 out2: free(ptname);
64 out1: return istat;
65
66 }
67 /*> END <----------------------------------------------------------*/