为什么我添加MPI后,文件打不开?

问题描述 投票:0回答:1

当我的程序在没有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次。不仅是打开文件,一般来说,任何文件的工作都是如此。

c++ file mpi
1个回答
1
投票

我的信誉不够,所以在这里发帖。

根据你的评论。errno 13 代表 "不允许 "和 errno 2 - '没有这样的文件或目录'

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

© www.soinside.com 2019 - 2024. All rights reserved.