[英]Linux, execve how to run a child binary and pass payload efficently?
直到今天,當我在我的應用程序(分布式計算)中啟動子程序時,我都使用execv並作為參數傳遞了存儲有效負載的文件名。
所以我有兩個文件:
1)子程序二進制文件(+ x)
2)child-program.payload(+ r)
當child-program.binary執行時,它知道必須在啟動時加載child-program.payload,然后進行計算並將新的有效負載存儲到child-program.payload文件中。
我想更改它,而不是將有效負載存儲在硬盤驅動器上,我想運行二進制文件並以不同的方式(可能通過管道)傳遞有效負載?
另外,我是否必須將二進制文件存儲在硬盤上才能運行它? 是否沒有其他類似選項的內存來執行某些操作?
有哪些可能的選擇?
謝謝大家!
文件處理的優點是它是非易失性的,數據可以很容易地作為文件分布在全球范圍內。
根據您對管道的想法,我假設您的“分布式計算”在同一節點上。 您還可以使用共享內存,請參見: shm_open並將共享內存的“文件”名稱傳遞給子級。 順便說一句。 管道或FIFO使您可以使用輪詢/選擇輕松進行同步。 AFAIK您需要更多的基礎結構來同步對共享內存的訪問。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.