Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何找到文件系统块大小?_C_Gcc_Filesystems - Fatal编程技术网

C 如何找到文件系统块大小?

C 如何找到文件系统块大小?,c,gcc,filesystems,C,Gcc,Filesystems,我想知道一种通过C中的函数或编译器常量来确定磁盘块大小的方法。关于您使用gcc编译器的信息并不有趣,因为编译器对文件系统的块大小不感兴趣,他们甚至不知道文件系统可以存在的事实。。。答案是特定于系统的(MS Windows?GNU/Linux或其他类似*nix/*nix的操作系统?);在POSIX上有stat函数,您可以使用它来拥有stat结构,其中包含您感兴趣的字段st_blksize(文件系统I/O的块大小) 添加 范例 #include <sys/types.h> #includ

我想知道一种通过C中的函数或编译器常量来确定磁盘块大小的方法。

关于您使用gcc编译器的信息并不有趣,因为编译器对文件系统的块大小不感兴趣,他们甚至不知道文件系统可以存在的事实。。。答案是特定于系统的(MS Windows?GNU/Linux或其他类似*nix/*nix的操作系统?);在POSIX上有
stat
函数,您可以使用它来拥有stat结构,其中包含您感兴趣的字段
st_blksize
(文件系统I/O的块大小)

添加

范例

#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdio.h>


int main()
{
  struct stat fi;
  stat("/", &fi);
  printf("%d\n", fi.st_blksize);
  return 0;
}
#包括
#包括
#包括
#包括
int main()
{
结构统计fi;
统计数据(“/”、&fi);
printf(“%d\n”,fi.st\u blksize);
返回0;
}

告诉您/(root)上使用的文件系统;e、 对我来说,它输出4096个文件系统上的statvfs()报告。stat()报告给定文件。这几乎总是一样的,但由于您要求从文件系统获得结果,POSIX系统的正确答案是调用statvfs()。

您是指文件系统的块大小?磁盘页面大小???你是说群集大小吗?这取决于文件系统和文件系统设置/配置是的,对不起,交易错误,我指的是块大小。我使用的是gcc编译器,所以在linux中我可以使用这个结构?很抱歉,我是个乞丐。你能在一个例子中使用它吗?开始阅读,例如,看看它是否是你想知道的好,谢谢,我真的需要它来完成一个关于磁盘结构的学校项目(树b+,散列,等等)谢谢styp-v/dev/vx/dsk/r1sp1dbdg/sapdata31 vxfs版本:5 f_bsize:8192 f_frsize:1024;我无法正确格式化上面的输出。对不起HPUX vxfs可能会显示这一点。