Back to index

glibc  2.9
test-stat.c
Go to the documentation of this file.
00001 /* Copyright (C) 2000 Free Software Foundation, Inc.
00002    Contributed by Maciej W. Rozycki <macro@ds2.pg.gda.pl>, 2000.
00003    This file is part of the GNU C Library.
00004 
00005    The GNU C Library is free software; you can redistribute it and/or
00006    modify it under the terms of the GNU Lesser General Public
00007    License as published by the Free Software Foundation; either
00008    version 2.1 of the License, or (at your option) any later version.
00009 
00010    The GNU C Library is distributed in the hope that it will be useful,
00011    but WITHOUT ANY WARRANTY; without even the implied warranty of
00012    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013    Lesser General Public License for more details.
00014 
00015    You should have received a copy of the GNU Lesser General Public
00016    License along with the GNU C Library; if not, write to the Free
00017    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
00018    02111-1307 USA.  */
00019 
00020 /* We need to define:
00021 #define _FILE_OFFSET_BITS 64
00022 #define _LARGEFILE64_SOURCE 1
00023 */
00024 
00025 #include <assert.h>
00026 #include <stddef.h>
00027 #include <sys/stat.h>
00028 
00029 int
00030 main (void)
00031 {
00032   /* With _FILE_OFFSET_BITS=64 struct stat and struct stat64 should
00033      be identical.  */
00034   assert (sizeof (struct stat)
00035          == sizeof (struct stat64));
00036   assert (offsetof (struct stat, st_dev)
00037          == offsetof (struct stat64, st_dev));
00038   assert (offsetof (struct stat, st_ino)
00039          == offsetof (struct stat64, st_ino));
00040   assert (offsetof (struct stat, st_mode)
00041          == offsetof (struct stat64, st_mode));
00042   assert (offsetof (struct stat, st_nlink)
00043          == offsetof (struct stat64, st_nlink));
00044   assert (offsetof (struct stat, st_uid)
00045          == offsetof (struct stat64, st_uid));
00046   assert (offsetof (struct stat, st_gid)
00047          == offsetof (struct stat64, st_gid));
00048   assert (offsetof (struct stat, st_rdev)
00049          == offsetof (struct stat64, st_rdev));
00050   assert (offsetof (struct stat, st_size)
00051          == offsetof (struct stat64, st_size));
00052   assert (offsetof (struct stat, st_atime)
00053          == offsetof (struct stat64, st_atime));
00054   assert (offsetof (struct stat, st_mtime)
00055          == offsetof (struct stat64, st_mtime));
00056   assert (offsetof (struct stat, st_ctime)
00057          == offsetof (struct stat64, st_ctime));
00058   assert (offsetof (struct stat, st_blksize)
00059          == offsetof (struct stat64, st_blksize));
00060   assert (offsetof (struct stat, st_blocks)
00061          == offsetof (struct stat64, st_blocks));
00062 #if 0
00063   /* Some systems have st_fstype but not all.  Don't check it for now.  */
00064   assert (offsetof (struct stat, st_fstype)
00065          == offsetof (struct stat64, st_fstype));
00066 #endif
00067   return 0;
00068 }