想出这个问题的标题有点麻烦。
我最近摸索到了 C 的世界。
我有一点代码,基本上显示了驱动器的容量和可用空间。它在我尝试过的几个不同的 Linux 发行版以及 Solaris 和 AIX 上运行良好。我最近在一个 HP-UX PA-RISC 机器上编译并得到(在我看来)一个非常奇怪的错误。
struct statfs fsStat;
err = statfs(rootPath,&fsStat);
unsigned long long totalBytes = (unsigned long long)(fsStat.f_bsize * fsStat.f_blocks);
当我这样做时,在 GDB 中:
p (fsStat.f_bsize * fsStat.f_blocks)
结果是 1335205888 但是在运行计算之后,当我做
p totalByes
结果是 18446744071562067968
任何甚至可以让我知道在这里尝试什么的信息都会非常棒。曾经以为我知道如何编程,直到我开始做多平台 C :(