首页
社区
课程
招聘
[求助]如何用标准库函数判断是否真的磁盘空间不足?
发表于: 2010-1-28 14:54 3394

[求助]如何用标准库函数判断是否真的磁盘空间不足?

2010-1-28 14:54
3394
当在fat32文件系统的分区上写文件时,由于4G问题,会出现文件占用空间为4G,而文件实际大小为4G-512字节,虽然文件占用了4G,但最后这512字节是不能写入磁盘的,因为表示文件大小的是一个DWORD,最多只能到FFFFFFFF,就是4G-1,而占用空间是根据簇个数*簇字节计算出来的,因此就会造成占用可到4G,而实际有效数据不可能到4G的问题.
    在这种情况下,如果用标准库函数来写入文件,写最后512字节时就会返回ENOSPC错误,意思是磁盘空间不足,由于ENOSPC这个错误码与真的磁盘空间不足相同,因此需要判断,我想到的一个方法是用文件占用空间大小与文件实际大小相比,如果实际大小小于占用空间,则说明并非真的磁盘空间不足,这用win32Api可以办到,但由于代码也要用在linux平台,我不想用win32 api函数,因此考虑到代码移植,只想用标准库函数来实现,但是我找到的标准库函数如ftell,_stat64,都只能获取文件实际大小,不能获取文件占用空间大小,请教还有哪些标准库函数可实现 区分是否真的磁盘空间不足?

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//