Proc

我可以添加到 /proc/self 嗎?

  • March 8, 2016

我想在我的程序中創建一些命名的記憶體區域,並將mmap它們放在某個地方,以便其他程序可以讀取它們。我不能保證我的程序一次只能執行一個實例。理想情況下,我想把積木放在下面/proc/self/<blockname>或類似的地方。這可能嗎?或者還有其他地方可以放置映射文件嗎?(我的程序通常不會以 root 身份執行。)

我不想使用/proc/self/fdor /proc/self/map_files,因為這不允許命名它們(據我所知)。

不,您不能以有意義的方式添加您的結構,/proc因為它是生成的(不是“真正的”文件系統)。/sys在某些機器上也是如此。更改 的結構/proc並不簡單(參見範例*在 /proc 下創建文件夾並在文件夾下創建條目*)。

進一步閱讀:

@mark-plotnick 建議使用 POSIX 共享記憶體,它確實支持names

進一步閱讀:

的操作shm_open()類似於的操作open(2)。name 指定要創建或打開的共享記憶體對象。對於可移植使用,共享記憶體對象應該由一個形式的名稱來標識*/somename*;也就是說,一個以空字元結尾的字元串,最多 NAME_MAX包含(即 255 個)字元,由一個初始斜杠組成,後跟一個或多個字元,其中沒有一個是斜杠。

引用自:https://unix.stackexchange.com/questions/268262