Magellan Linux

Contents of /trunk/mkinitrd-magellan/klibc/usr/klibc/tests/stat.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1297 - (show annotations) (download)
Fri May 27 15:12:11 2011 UTC (12 years, 11 months ago) by niro
File MIME type: text/plain
File size: 1690 byte(s)
-updated to klibc-1.5.22 with mntproc definitions patch included
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <sys/stat.h>
4 #include <sys/sysmacros.h>
5 #include <sys/types.h>
6
7 static void do_stat(const char *path)
8 {
9 struct stat st;
10
11 if (stat(path, &st)) {
12 perror(path);
13 exit(1);
14 }
15
16 printf("Path = %s\n"
17 " st_dev = %#jx (%u,%u)\n"
18 " st_ino = %ju\n"
19 " st_mode = %#jo\n"
20 " st_nlink = %ju\n"
21 " st_uid = %ju\n"
22 " st_gid = %ju\n"
23 " st_rdev = %#jx (%u,%u)\n"
24 " st_size = %ju\n"
25 " st_blksize = %ju\n"
26 " st_blocks = %ju\n",
27 path,
28 (uintmax_t) st.st_dev, major(st.st_dev), minor(st.st_dev),
29 (uintmax_t) st.st_ino,
30 (uintmax_t) st.st_mode,
31 (uintmax_t) st.st_nlink,
32 (uintmax_t) st.st_uid,
33 (uintmax_t) st.st_gid,
34 (uintmax_t) st.st_rdev, major(st.st_rdev), minor(st.st_rdev),
35 (uintmax_t) st.st_size,
36 (uintmax_t) st.st_blksize, (uintmax_t) st.st_blocks);
37
38 #ifdef _STATBUF_ST_NSEC
39 printf(" st_atim = %jd.%09u\n"
40 " st.mtim = %jd.%09u\n"
41 " st.ctim = %jd.%09u\n",
42 (uintmax_t) st.st_atim.tv_sec, (unsigned int)st.st_atim.tv_nsec,
43 (uintmax_t) st.st_mtim.tv_sec, (unsigned int)st.st_mtim.tv_nsec,
44 (uintmax_t) st.st_ctim.tv_sec, (unsigned int)st.st_ctim.tv_nsec);
45 #else
46 printf(" st_atime = %jd\n"
47 " st.mtime = %jd\n"
48 " st.ctime = %jd\n",
49 (uintmax_t) st.st_atime,
50 (uintmax_t) st.st_mtime, (uintmax_t) st.st_ctime);
51 #endif
52 }
53
54 int main(int argc, char *argv[])
55 {
56 int i;
57
58 for (i = 1; i < argc; i++)
59 do_stat(argv[i]);
60
61 return 0;
62 }