[英]Is there a way to an share address mapping between two unrelated processes on Linux?
[英]Is there an easier way to share file descriptors between unrelated processes on modern day Linux (i.e., ver>=3.0.0)?
與使用sendmsg()
系統調用通過 UNIX 域套接字發送它(類型設置為SCM_RIGHTS
的消息sendmsg()
相比,Linux 是否提供了一種更好的方式將 fd 從一個進程發送到另一個進程以進行共享? 我想最好的可能性是能夠以某種方式命名一個 fd,然后在一個不相關的過程中(按名稱)打開它,但我對其他選擇持開放態度。
我問這個問題的原因是能夠在沒有父子關系的進程之間使用 *fd() 函數(例如, eventfd()
、 timerfd()
、 signalfd()
等...),使其成為共享文件描述符要困難得多。
這個例子 - 基於libancillary - 顯示了如何在不相關的prcoesses之間傳遞eventfd。 請參閱evclient.c和evserver.c代碼。
在https://www.normalesup.org/~george/comp/libancillary/ 上有一個庫可以為您執行此操作,該庫通過復制到它們的樹中在許多項目中使用,但主要的 git 主機不再存在.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.