gpt4 book ai didi

捕获正在写入打开文件描述符的数据

转载 作者:太空狗 更新时间:2023-10-29 15:39:53 25 4
gpt4 key购买 nike

是否可以编写一个程序来获取另一个应用程序的打开文件描述符,并只传递它们的内容而不进行任何转换?

假设应用程序 A 有一个打开的 FD 到它正在写入数据的磁盘上的某个文件。

我希望能够以某种方式获得对打开的 FD 的访问权限,以便在应用程序 A 向该文件写入数据时,我可以将该写入广播给对该操作感兴趣的其他应用程序。

我希望能够在打开的 FD 上复用读/写操作。

一个更具体的例子;我有一个 midi 键盘和一些合成器,我希望能够打开 midi 键盘文件描述符并将所有传入的写入操作传递给 0-N 个感兴趣的合成器。

最佳答案

strace 有一个选项可以完成您想要的主要部分。

       -e write=set                   Perform a full hexadecimal and ASCII dump of all the                   data written to file descriptors listed in the spec-                   ified  set.  For example, to see all output activity                   on file descriptors 3 and 5 use -e write=3,5.   Note                   that  this is independent from the normal tracing of                   the write(2) system call which is controlled by  the                   option -e trace=write.
  • 如果您的应用A 已经在运行:strace -ewrite -ewrite=<i>FD</i> -p<i>PID</i>
  • 如果您的应用 A 尚未启动:strace -ewrite -ewrite=<i>FD</i> <i>A</i>

将生成的十六进制转储转换回原始数据并将其提供给其他应用程序是微不足道的。

关于捕获正在写入打开文件描述符的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50218914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com