在C ++中通过ssh远程发送shell命令

问题描述 投票:1回答:4

我想打开一个ssh会话到我的Raspberry Pi并在我想要的时候运行简单的命令echo 0=+10 > /dev/servoblaster(意味着不使用system("ssh [email protected] echo 0=+10 > /dev/servoblaster"),因为再次运行ssh需要时间)。 C ++中最简单的方法是什么?

c++ ssh raspberry-pi pwm
4个回答
0
投票

对于发送简单的控制命令,至少可以说ssh是一种过度杀伤。

人们通常使用简单的串口。这可以通过几种方式完成,使用QtSerialPort等库或只需通过manual termios settings

您可以使用“gserial”通过USB连接获取串行端口操作,并将其用作常规串行端口。


0
投票

我没有用它,但看起来很有希望。

http://api.libssh.org/master/libssh_tutor_guided_tour.html


0
投票

假设您只需要单向通信,请使用FILE *ssh = popen("ssh [email protected]", "w")而不是system打开ssh连接。这会给你一个写入的句柄,例如fprintf(ssh, "echo 0=%#d > /dev/servoblaster", 10);。然后可以使用ssh连接,直到你稍后再使用pclose(ssh);

如果您需要回读,则需要打开管道的两侧,这需要“适当的fork jobbie”。在这种情况下,你可以从这个例子开始。

fork() and pipes() in c


0
投票

我正在编写一个C ++程序,用Raspberry Pi控制伺服电机,上面有命令,如何在没有ssh的情况下访问和运行Raspberry Pi的命令?

您可以使用REST提供的WebIOPi API访问和运行Raspberry Pi控制伺服电机的命令。

© www.soinside.com 2019 - 2024. All rights reserved.