2 * Copyright 2000, International Business Machines Corporation and others.
5 * This software has been released under the terms of the IBM Public
6 * License. For details, see the LICENSE file in the top-level source
7 * directory or online at http://www.openafs.org/dl/license10.html
10 #include <afsconfig.h>
11 #include <afs/param.h>
14 #include <sys/types.h>
21 #include "AFS_component_version_number.c"
24 Perror(char *err
, int a1
, int a2
, int a3
)
27 sprintf(msg
, err
, a1
, a2
, a3
);
32 main(int argc
, char **argv
)
34 #if defined(AFS_NT40_ENV) || defined(AFS_NAMEI_ENV)
35 fprintf(stderr
, "gi not supported on NT or NAMEI systems.\n");
44 while (argc
&& **argv
== '-') {
45 if (strcmp(*argv
, "-stat") == 0)
54 if (error
|| argc
!= 2) {
55 fprintf(stderr
, "Usage: gi [-stat] partition inodenumber\n");
58 if (stat(*argv
, &status
) != 0) {
60 "gi: cannot stat %s [should be mounted partition name]\n",
65 inode
= atoi(*++argv
);
66 fd
= iopen(dev
, inode
, 0);
68 Perror("Unable to open inode %d", inode
, 0, 0);
72 if (fstat(fd
, &status
) != 0) {
73 Perror("Unable to fstat the inode!", 0, 0, 0);
77 ("Inode status: dev=%d, ino=%d, mode=%o, nlink=%d, uid=%d, gid=%d, size=%d, mtime=%d, blocks=%d\n",
78 status
.st_dev
, status
.st_ino
, status
.st_mode
, status
.st_nlink
,
79 status
.st_uid
, status
.st_gid
, status
.st_size
, status
.st_mtime
);
81 /* Send the inode to standard out */
84 while ((n
= read(fd
, buf
, sizeof(buf
))) > 0)
88 #endif /* AFS_NT40_ENV || AFS_NAMEI_ENV */