两个进程共享同一个pcap文件
Two processes sharing same pcap file
我有一个c++程序(在linux上执行),它使用了pcap文件。处理来自该pcap文件的每个数据包,并在文本文件中生成结果。我写了一个脚本,用不同的输入参数运行这个程序的两个实例。这个程序的一个实例在一个CPU上运行,另一个实例在第二个CPU上运行。
问题是,在我的程序中,我已经硬编码了pcap文件名。因此,在两个cpu上打开pcap文件并从中读取数据包。
我希望这两个程序都打开相同的pcap文件进行读取,这种情况只发生一次,当pcap文件被打开时,它的每个数据包都被发送到CPU1和CPU2上运行的进程。
请给我一些指导,我怎样才能完成这项任务。
听起来您希望您的进程做这样的事情:
- 打开pcap文件
- 读取一些数据包
- 将该数据包传递给进程的两个线程,每个线程配置不同
你可以让你的脚本读取pcap文件,并将stdin上的二进制数据传递给你的c++程序,然后程序处理它。或者您可以使用套接字、共享内存和管道来代替stdin。
我假设你可以访问你所说的程序的代码。
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 是否可以通过C++扩展强制多个python进程共享同一内存
- 在cuda线程之间共享大量常量数据
- 如何从具有移动语义的类对象中生成共享指针
- 在c代码之间共享数据的最佳方式
- 在两个类中共享相同的函数调用,并在不需要时避免空实例化
- 为什么std::async使用同一个线程运行函数
- 将静态库链接到不带-fPIC的共享库中
- 为什么std::互斥需要很长的、非常不规则的时间来共享
- 使用Boost Interprocess创建托管共享内存需要很长时间
- 多个"常量引用"变量可以共享同一个内存吗?
- 如何在同一个 CMAKE 项目中强制链接到共享库?
- 如果两个线程调用同一个函数,但函数中的所有变量都是局部变量,我还需要担心线程之间共享数据吗?
- 两个单链列表共享同一个节点和析构函数两次删除相同的内存
- 同一个c++类的所有实例共享一个vtable,或者每个实例都有自己的vtable
- 两个进程共享同一个pcap文件
- 如果多个类有一个共同的静态变量,它们是共享的吗(在同一个作用域内?)
- 同一个内核的多次启动是否可以访问共享变量?
- boost::wait和boost::condition必须共享同一个互斥对象吗?
- 在同一个exe但不同的对象文件的多个函数中使用共享库的静态变量