Linux cpu 到 cpu 进程间通信

标签 linux ipc

我编写了一个 Linux C 程序,它在嵌入式处理器上运行,并且表现得像一个 shell——要么以交互方式给出提示、解析用户命令并在无限循环中执行它们,要么以非交互方式-- 从调用命令中读取和解析命令。我想在另一个嵌入式处理器上同时运行相同的程序,它可以使用 e/net(例如 ssh)访问,并将它用于某些命令,因为第二个处理器可以访问第一个处理器不能访问的某些硬件。我通常需要捕获和处理该远程命令的输出。目前,我为每个命令调用第二个处理器上的程序——例如

system ("ssh other-cpu my_program "do this command > /vtmp/out_capt");
system ("scp other-cpu:/vtmp/out_capt .")

这行得通,但速度很慢。有没有更好的方法,也许使用管道?如果有人能指出他们选择的执行此类 IPC 的最佳方法,我将不胜感激。

最佳答案

您可以去掉 scp 并只将 ssh 的输出保存在本地机器上。像这样:

ssh other-cpu '( my_program command )' > file.log

或者如果你想运行多个命令:

ssh other-cpu > file.log << EOF
my_program command
my_program other_command
EOF

关于Linux cpu 到 cpu 进程间通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34982176/

相关文章:

ruby-on-rails - JoyentOS libcurl 与乘客

linux - linux下如何设置执行哪个二进制文件

linux - 为什么我不能在 PS1 中使用 $(...) 而不是反引号?

c - "Cannot allocate memory"在 C 中使用 shmat 命令的共享内存问题

c++ - 如何修复范围内的字符串声明错误

c - execvp() 和/或 strings 出现问题,为什么此代码不起作用?

linux - AWK 脚本返回 0 条记录

Linux DBus通讯

linux - Linux 上的快速用户空间进程间通知方法?

c - 在多个进程之间传递消息,每个进程在 c 中有多个线程