为什么在我添加 MPI 时文件打不开?

Why don't files open when I add MPI?

当我的程序在没有 MPI 的情况下运行时,打开文件一切正常,但是当我添加 MPI 时,文件无法打开。这是为什么?
我的代码:

void fileEntry(string path, int n) {

    ofstream fout;

    fout.open(path);
    if (!fout.is_open()) {
        cout << "File open error";
    }
    else {
        for(int i = 0; i < n; i++) {
            for(int j = 0; j < n; j++) {
                fout << rand() % 100 << " ";
            }
            fout << "\n";
        }
    }

    fout.close();
}

int main(int argc, char** argv) {

    MPI_Init(&argc, &argv);
    MPI_Comm_rank(MPI_COMM_WORLD, &WORLD_RANK);
    MPI_Comm_size(MPI_COMM_WORLD, &WORLD_SIZE);

    if (WORLD_RANK == 0) {
        // размерность
        int dimension = 0;
        cout << "Введите размерность матрицы:\n";
        cin >> dimension;

        // записываем данные в файлы
        fileEntry("MatrixA.txt", dimension);
        fileEntry("MatrixB.txt", dimension);
    ...
}

这段代码给出了两次:文件打开错误。
我在7个进程中启动项目,但是没关系,因为我只在一个0进程中专门打开文件。我不需要文件打开7次,我需要1次。
因此,不仅是开场,而且通常是任何文件工作。

我没有足够的声誉来发表评论,所以在这里发帖。

根据您的评论,errno 13 代表 'permission denied' 和 errno 2 - 'No such file or directory'

首先我建议尝试使用完整 filepath,然后尝试提供对文件或目录的正确权限。