Intel® MPI Library
Get help with building, analyzing, optimizing, and scaling high-performance computing (HPC) applications.

MPI IO - simple question

stansy
Beginner
719 Views

Hi,

How do I check if a file exists and has been successfully opened. MPI::File::Open function suspends my program.

Thanks,

Stan

0 Kudos
2 Replies
James_T_Intel
Moderator
719 Views
Hi Stan, If MPI_File_open were returning, you could use the return code to determine if the file exists or not. Since your program isn't getting past MPI_File_open, you'll need to use a non-MPI mechanism to do this. In C++, I would likely try to open the file (closing it immediately afterwards), as this is a portable method. You can check the return values from the open attempt. There are also non-portable methods that can check without opening the file. Sincerely, James Tullos Technical Consulting Engineer Intel® Cluster Tools
0 Kudos
stansy
Beginner
719 Views
Hi James, Many thanks for the comprehensive answer. Because I use C + + interface I adopted _access_s () function. I think it is safe: MPI::File fin = MPI::FILE_NULL; if(_access_s( fname, 0 ) == 0) fin = MPI::File::Open(MPI::COMM_WORLD, fname, MPI::MODE_RDONLY, MPI::INFO_NULL); if(fin != MPI::FILE_NULL){ something, something .... } Width regards, Stan
0 Kudos
Reply