我知道數據可以被多個應用程序使用共享內存保存和使用。我想知道是否有可能將函數指針保存在共享內存中?我的目的是撥打電話從我的共享對象返回到具有相同返回值和不同應用程序參數的函數。將函數指針保存在共享內存中
1
A
回答
2
0
除非您完全確定自己在做什麼,否則在共享內存段中保存函數指針聽起來是一個糟糕的主意,您最終可能會訪問您的進程沒有權限的函數指針,並且可能會最終導致你的程序崩潰。
-1
沒有,不能共享的函數指針,如果你願意,u需要使該函數庫,並用它在你的進程
0
它不能保證共享庫將被裝載到同一個地址兩種不同的應用。事件更糟糕的是,由於地址空間佈局隨機化,圖書館可能被加載到任何隨機地址。因此,函數指針不是不變的,因此不能存儲在任何地方。
作爲解決方案,您可以在兩個進程中創建一個包含所有可能的回調的函數表,並在共享內存中存儲偏移量。當然,那些表應該是,確切地說一樣。
相關問題
- 1. 將結構數組保存到共享內存中
- 2. 在內存中緩存數據共享
- 3. 共享內存 - 警告:指針和整數之間的比較
- 4. Ç共享存儲器指針映射
- 5. 指針在共享內存 - C語言的Linux
- 6. 提升共享內存對象中的指針
- 7. 內存共享
- 8. 在Delphi中保存一個指向指定函數的指針
- 9. 是否有可能將函數指針保存在std :: vector中?
- 10. C++智能指針:共享指針與共享數據
- 11. 動態分配共享內存的數組和CUDA中的數據指針
- 12. 爲什麼會立即銷燬共享指針泄漏內存?
- 13. 存儲向量中的數組共享指針
- 14. 如何將函數指針中的函數保存爲類的成員函數?
- 15. 共享指針:指針的指針
- 16. C共享內存
- 17. Linux共享內存
- 18. 共享內存段
- 19. CUDA共享內存
- 20. RDMA內存共享
- 21. 共享菜單保存並共享
- 22. 共享內存在Unix的
- 23. OpenCL中的共享內存
- 24. DLL中的共享內存
- 25. 受保護的共享內存?
- 26. 在共享內存中推送和檢索ObjC中的NSObject指針的示例?
- 27. 在Union(C)中存儲函數指針
- 28. 將實驗記錄保存在Mercurial的共享存儲庫中
- 29. 將共享指針存儲矢量對象拋出錯誤?
- 30. (共享)指針Singelton
[指針內部共享內存段]可能重複(https://stackoverflow.com/questions/10776762/pointers-inside-shared-memory-segment) – Aravind
可能重複[是否有可能跨過程使用函數指針?](https://stackoverflow.com/questions/1561620/is-it-possible-to-use-function-pointers-across-processes) – Marc
@Aravind關於數據,而不是函數指針。 –