我在运行程序的arm设备上有一个嵌入式gnu / linux,我可以telnet它。我想知道程序如何向设备发送命令,这样我就可以创建自己的程序来发送这些命令,但是当我想要它时。我很确定它会写入/dev
中的某些内容
我如何知道程序正在编写的/dev
(我知道它不是真正的文件)中的哪个文件?什么?
参考其在armv5tejl芯片上的2.6.27.47内核。我也有它的工具链,所以我可以编译程序。
答案 0 :(得分:5)
使用lsof
(列出打开的文件),您可以查看每个进程已打开的文件。您应该找到您的进程在那里使用的设备节点。或者,您可以使用ps aux
找到程序的PID(进程ID),然后查看/proc/$pid/fd
处的打开文件描述符,其中$ pid是程序的PID。 / p>
要了解程序正在编写的内容,最简单的方法是使用strace跟踪程序执行的所有系统调用。 (使用strace,您还可以找到程序打开的文件。)如果可能,您还可以使用空文件替换程序写入的文件,或者,如果需要,还可以使用虚拟内核驱动程序替换该文件,该驱动程序记录收到的所有内容