如何检查是否可以创建给定长度的文件?

leo*_*xyz 4 c linux size io file

我想创建一个给定长度(即2GB)的非稀疏文件,但我想在实际将内容写入磁盘之前检查是否可行.

换句话说,我想避免在写入时获得ENOSPC(设备上没有剩余空间).我不想创建一个大小为2GB的"测试文件"或类似的东西,只是为了检查是否有足够的空间.

那可能吗?

D K*_*ger 5

使用posix_fallocate(3).

从描述:

函数posix_fallocate()确保为描述符fd引用的文件分配磁盘空间,该文件用于从offset开始并继续len字节的范围内的字节.在成功调用posix_fallocate()之后,由于缺少磁盘空间,后续写入指定范围内的字节将保证不会失败