我有以下問題:如何mmap()隊列?
我已經創建了一個隊列。元素(malloc)的添加由main()函數完成,我創建了一個線程,它將處理元素/數據並釋放它們。 這是一個連續的過程,它會一直持續到我殺死過程。
現在,如果我殺死了進程,隊列中的數據將會丟失,所以我正在考慮在其上實現mmap()。因此,隊列也存儲在一個常規的文件,當我重新啓動過程中,數據將被重新加載到內存中,以供線程進一步處理...
由於我是malloc'ing和free'ing內存,我猜想mmapped文件的大小會不斷增大或減小。
現在是可以實現或應該考慮其他選項?
謝謝。
EDIT1:我可以使用lseek或ftruncate()來調整文件大小嗎?