c ++系统后台MPI进程只在末尾打印输出?

时间:2017-12-05 12:43:39

标签: c++ windows mpi system background-process

如果我按如下方式启动使用 MPI 的后台流程:

system("start \"\" cmd /k \"cd <path> && mpiexec -n 1 <exe> &\"");

它工作正常,但整个输出显示在程序末尾的命令提示符中。我想在打印时立即看到输出。我怎么做?请注意,如果我在命令中没有使用mpiexec,我会在发生输出后正确地获取输出。

样品:

#include <iostream>
#include <windows.h>
#include <mpi.h>
#include <cstdio>

int main(int argc, char* argv[])
{
    MPI_Init(&argc, &argv);

    printf("test A\n");
    Sleep(2000);

    printf("test B\n");
    Sleep(2000);

    printf("test C\n");
    Sleep(2000);

    MPI_Finalize();
    return 0;
}

编辑:在每个print语句修复问题后使用fflush(stdout)刷新输出(如注释中所述)。但是我想知道是否有其他方法可以解决这个问题,因为这需要在代码中更改数千个打印语句。

0 个答案:

没有答案