社区
Linux/Unix社区
帖子详情
如何使用在创建文件时预先分配一定的磁盘空间
frman
2007-02-25 10:17:04
要求使用CRT
之前查了查
fopen()后fseek(),然后再fwrite()一下就好,但这样在给大文件分配空间时太耗时。
有没有什么其他别的方法达到WIN32 SDK里那个SetEndOfFile()的效果?
...全文
690
9
打赏
收藏
如何使用在创建文件时预先分配一定的磁盘空间
要求使用CRT 之前查了查 fopen()后fseek(),然后再fwrite()一下就好,但这样在给大文件分配空间时太耗时。 有没有什么其他别的方法达到WIN32 SDK里那个SetEndOfFile()的效果?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
frman
2007-03-01
打赏
举报
回复
谢了
chehw
2007-02-27
打赏
举报
回复
找到一个使用low-level io routine的方法
#include <io.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
int main()
{
int fh=_open( "1.dat", _O_WRONLY | _O_CREAT, _S_IREAD | _S_IWRITE );
if(-1!=fh)
{
lseek(fh, 1024*1024*1024-1, SEEK_SET);
_write(fh, "\0", 1);
_close(fh);
}
getchar();
return 0;
}
hgyxb
2007-02-26
打赏
举报
回复
setSize不知可不可以
frman
2007-02-26
打赏
举报
回复
那linux下有什么函数可以达到SetEndOfFile()的效果吗?
setSize()是哪里的?
chehw
2007-02-25
打赏
举报
回复
用_chsize也可更改文件大小,效率略高于fseek+fwrite,但远低于SetEndOfFile。
WIN32 API是平台相关的,属于底层实现,用CRT的方法恐怕达不到SetEndOfFile的效率。
frman
2007-02-25
打赏
举报
回复
fopen()后fseek()至指定大小(size-1),然后再fputs()一个字节.
这个不和我说的一样效果?还是要重写一遍,很慢的
============================================================
没法指定特定文件系统,FAT, EXT2都有可能
============================================================
驱动方面的不懂,有必要涉及吗?WIN32 SDK里那个SetEndOfFile()我看效果满好,不知道怎么实现的
luoshayu
2007-02-25
打赏
举报
回复
DeviceIoControl(...,FSCTL_SET_SPARSE,...
luoshayu
2007-02-25
打赏
举报
回复
如果是NTFS系统可以使用sparse file.
chehw
2007-02-25
打赏
举报
回复
fopen()后fseek()至指定大小(size-1),然后再fputs()一个字节.
VMware虚拟机Mac OS X无法调整扩展硬盘大小,更新xcode
时
出现
磁盘空间
不足
在
使用
VMware虚拟机运行Mac OS X系统
时
,可能会遇到一些存储管理方面的问题,尤其是在进行软件更新或安装大型应用如Xcode
时
,可能会提示
磁盘空间
不足。这主要是因为虚拟机的硬盘空间
分配
有限,而扩展虚拟硬盘大小并...
操作系统
磁盘空间
的
分配
与回收
在实际操作系统中,
磁盘空间
的管理更为复杂,可能会结合多种方法,例如,
使用
位示图配合空闲链表或索引节点来优化空间
分配
。同
时
,现代操作系统还会
使用
碎片整理算法来减少碎片,提高磁盘性能。理解这些基本概念和...
学习操作系统3(银行家算法、
磁盘空间
管理、文件目录管理)
在设计文件系统
时
,目录结构的建立和维护尤为关键,它需要以一种既方便用户
使用
又高效利用
磁盘空间
的方式实现。通过学习文件目录管理,学生可以掌握文件系统的逻辑结构设计,理解文件路径和文件名的处理机制,为将来...
让win7自动加载虚拟硬盘方法.rar
在Windows 7操作系统中,虚拟硬盘(Virtual Hard Disk, VHD)是一种强大的工具,它可以创建一个独立于物理硬盘的磁盘映像文件,用于存储数据、安装操作系统或进行备份。虚拟硬盘可以像真实硬盘一样被挂载和
使用
,...
虚拟硬盘,可以把你的硬盘从40G变成400G!
虚拟硬盘技术是一种在计算机系统中创建的逻辑存储设备,它通过软件模拟物理硬盘的功能,使得用户可以在不增加物理硬盘空间的情况下扩展存储容量。这个技术基于操作系统级别的存储管理,利用现有的
磁盘空间
创建一个或...
Linux/Unix社区
23,215
社区成员
74,540
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章