00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "defs.h"
00022
00023 #if _XOPEN_SOURCE >= 4
00024 #include <sys/statvfs.h>
00025 #define STATVFS_NAME statvfs
00026
00027 #elif defined(BSD_DERIVED)
00028 #include <sys/param.h>
00029 #include <sys/mount.h>
00030 #define STATVFS_NAME statfs
00031
00032 #else
00033 #error "Need statvfs or nonstandard substitute"
00034 #endif
00035
00036 unsigned long getblksize(const char *path)
00037 {
00038 struct STATVFS_NAME buf;
00039
00040 if (path == NULL)
00041 path = ".";
00042 ec_neg1( STATVFS_NAME(path, &buf) )
00043 return buf.f_bsize;
00044
00045 EC_CLEANUP_BGN
00046 return 0;
00047 EC_CLEANUP_END
00048 }