我有以下问题:
我创建了一个队列。添加元素(malloc)由 main() 函数完成,我创建了一个线程,它将处理元素/数据并释放它们。这是一个持续的过程,它将一直持续到我终止该过程为止。
现在,如果我终止进程,队列中的数据将会丢失,所以我正在考虑在其上实现 mmap()。这样队列也存储在常规文件中,当我重新启动进程时,数据将重新加载到内存中以供线程进一步处理......
由于我正在 malloc'ing 和 free'ing 内存,我想 mmapped 文件大小会不断增加或减少。
现在这可以实施还是我应该考虑其他选择???
谢谢。
EDIT1:我可以使用 lseek 或 ftruncate() 来调整文件大小吗?