两个进程共享同一个pcap文件

时间:2014-07-17 13:11:20

标签: c++ linux process parallel-processing

我有一个c ++程序(在linux上执行),它使用了一个pcap文件。处理来自此pcap文件的每个数据包,并在文本文件中生成结果。我编写了一个脚本,用不同的输入参数运行这个程序的两个实例。该程序的一个实例在一个CPU上运行,另一个实例在第二个CPU上运行。

问题是在我的程序中我已经硬编码了pcap文件名。结果,在两个CPU上打开pcap文件并从中读取数据包。

我希望这两个程序打开相同的pcap文件进行读取,这种情况只发生一次打开pcap文件并且每个数据包都发送到CPU1和CPU2上运行的进程。

请给我一些指示,我该怎样才能完成这项任务。

1 个答案:

答案 0 :(得分:2)

听起来您希望您的流程执行以下操作:

  1. 打开您的pcap文件
  2. 从中读取一些数据包
  3. 将该数据包传递到进程的两个线程,每个线程配置不同
  4. 您可以让脚本读取pcap文件并将stdin上的二进制数据传递给您的c ++程序,然后再处理它。或者您可以使用套接字,共享内存管道而不是标准输入。

    我假设您可以访问您所说的程序的代码。

    如果没有,那就复杂得多。