2008-12-16 139 views
1

我想創建一個只駐留在內存中的文件...在查看一些文檔時,我看到了一個建議,使用外殼擴展作爲虛擬文件。林不知道這是一個可行的解決方案,但我想知道外殼擴展 - 虛擬文件創建

  1. 它是一個不錯的方法(或者我應該使用RAMDISK代替)
  2. 哪裏是開始讀了它的好地方

注意:這是Windows平臺

回答

0

據我所知,你希望你的程序創建一個「文件」,它只駐留在內存中,並且你可以傳遞給另一個外部程序(比如說Microsoft Word)。

AFAIK這是不可能的,缺乏ramdrive。我建議使用臨時文件夾。然而,你將不得不想出一個刪除文件的策略,當它不再需要時。

加了:雖然第二,你可能想看看Reparse points。我自己並不熟悉它們,它們只能用於NTFS格式化的磁盤,但也許它們可以爲您提供所需的內容。這將是很多編碼,但。

0

你不說上。平臺你但我猜的Windows上。 mmap()是否可用?如果沒有,我認爲BerkeleyDB已經移植到Windows,所以你應該能夠使用它。 Win32 API可能類似於mmap(),但我不知道它。

+0

除非我弄錯了,mmap文件不會將其加載到內存中,它只會爲您提供一個虛擬內存指針,您可以從中訪問該文件。它只會在你讀取它時才進入內存(如果操作系統需要內存,則進入交換) – mat 2008-12-16 22:05:55

+0

你對mmap(3)是正確的,但這對OP來說可能足夠了。無論如何,BDB也應該工作。 – Keltia 2008-12-16 22:13:41

0

如果您想要一個只駐留在內存中的文件,請使用命名管道或其他東西,儘管我質疑您的場景 - 您是否可以升級並描述您想要執行的操作?