簡體   English   中英

Linux,執行如何運行子二進制文件並有效地傳遞有效載荷?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM