【发布时间】:2011-08-15 22:59:23
【问题描述】:
让我们为this one 创建一个补充问题。 在 C++ 中获取文件大小的最常用方法是什么? 在回答之前,请确保它是可移植的(可以在 Unix、Mac 和 Windows 上执行), 可靠、易于理解并且没有库依赖(没有 boost 或 qt,但例如 glib 是可以的,因为它是可移植库)。
【问题讨论】:
-
为什么不提升但允许 glib? Boost 也是便携式的。
-
@mmutz:“便携”与“标准”的含义不同。例如,Boost 比标准 C++ 更具可移植性,因为它具有针对编译器不兼容(包括旧版本)的变通方法。 Fstat 在最严格的意义上是可移植的。
-
@Thomas:没有标准就没有“便携”。该标准可能采用书面文档的形式(如 POSIX 或 C++),并且您希望所有实现都忠实于它,或者它可能是通过已移植到许多平台(大多数库、包括升压)。
fstat()在 POSIX 中是标准化的,但 Windows 选择通过调用函数_fstat()来偏离该标准。fstat()不可移植,因为您需要#ifdef _WIN32才能使用它。 -
许多 boost 函数是可移植的,但需要显式编译。