找出程序通信

时间:2011-06-26 12:14:13

标签: linux embedded gnu

我在运行程序的arm设备上有一个嵌入式gnu / linux,我可以telnet它。我想知道程序如何向设备发送命令,这样我就可以创建自己的程序来发送这些命令,但是当我想要它时。我很确定它会写入/dev中的某些内容 我如何知道程序正在编写的/dev(我知道它不是真正的文件)中的哪个文件?什么? 参考其在armv5tejl芯片上的2.6.27.47内核。我也有它的工具链,所以我可以编译程序。

1 个答案:

答案 0 :(得分:5)

使用lsof(列出打开的文件),您可以查看每个进程已打开的文件。您应该找到您的进程在那里使用的设备节点。或者,您可以使用ps aux找到程序的PID(进程ID),然后查看/proc/$pid/fd处的打开文件描述符,其中$ pid是程序的PID。 / p>

要了解程序正在编写的内容,最简单的方法是使用strace跟踪程序执行的所有系统调用。 (使用strace,您还可以找到程序打开的文件。)如果可能,您还可以使用空文件替换程序写入的文件,或者,如果需要,还可以使用虚拟内核驱动程序替换该文件,该驱动程序记录收到的所有内容