繁体   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