当我的程序在没有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
代表 "不允许 "和 errno 2
- '没有这样的文件或目录'
首先,我建议尝试使用全 filepath
然后尝试对文件或目录提供正确的权限。