【发布时间】:2018-01-03 22:42:34
【问题描述】:
您好,我正在用 C 语言编写数据库,并希望将数据写入硬盘驱动器,不再将其存储在 RAM 中。有没有办法做到这一点?
目前我创建了一个大文件并打开它
fd = open("database.dat",O_CREAT | O_RDWR);
hd = mmap(0, SSD_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
然后写入已经映射好的内存地址,然后
msync(dest,DB_PAGE_SIZE, MS_SYNC);
dest 在映射区域中的位置。
【问题讨论】:
-
Oracle、Informix、DB2、PostgreSQL、Sybase、MySQL、MS SQL Server 等 DBMS 都可以管理它——我不明白为什么你不能。当然,您必须设计系统才能正常工作,这并非易事,但肯定可以做到。
标签: c memory hard-drive