, ben bir paylaşılan bellek nesnesi oluşturabilirnasıl Haskell'ın mmap kitaplığı kullanarak paylaşılan hafızayı okunur? Ben de <code>mmap</code> kullanarak o bellekten okuyabilir</p> <pre><code>int fd = shm_open("/object", O_RDWR | O_CREAT, 0777); </code></pre> <p>: C: Açık
int* addr = mmap(0, sizeof(*addr), PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
Ama Haskell verilerine bunu nasıl ulaşabilirim?
import System.Posix.SharedMem
import System.IO.MMap
main = do
fd <- shmOpen "/bolts" (ShmOpenFlags False False False False) 0777
-- Obviously doesn't make sense, mmapFileByteString
-- requires a file path that I don't have!
addr <- mmapFileByteString "/bolts" Nothing
print addr
Bu yazarlar [yorumların] göre, bunu yapamaz (https://hackage.haskell.org/package/mmap-0.5.9/docs/src/System-IO-MMap.html): " TODO: harici olarak verilen HANDLE ve FD'leri destekleyin ". Fonksiyonu kendiniz eklemeniz gerekecek. – user2407038
İyi yakalamak @ user2407038, teşekkür ederim! – MaiaVictor