我如何知道在使用ofstream时我达到了文件的最大大小?

Sal*_*lsa 3 c++ linux

使用ofstream编写文件时,如何知道文件大小何时达到操作系统的最大文件大小 - 更具体地说是linux的最大文件大小 - ??

Mar*_*sey 5

首先,最大文件大小是文件系统限制,而不是操作系统限制.根据文件系统的格式化,它甚至会因特定文件系统而异.

至于你如何弄清楚你已达到极限,你的代码可能会在发生这种情况时抛出异常,然后你就可以将其与OS错误代码联系起来了.

请注意,对于"典型"EXT2文件系统,实际限制非常大 - 在太字节中.在实践中,你可能永远不会达到它.如果你真的在积累数TB的数据,你可能想要考虑是否有更合理的方式来存储它,而不是一个巨大的文件.

  • 它也由您正在使用的编译器和库定义.要写入超过2GB,您需要64位文件指针,这可能需要特殊的编译器标志,即使底层系统支持它. (2认同)