При запуске под Win с кириллицей в имени файла функция MPI_FileOpen() не может правильно обработать это имя.
В доках по MPI_FileOpen() нигде не указано, в какой кодировке должно передаваться имя. Я предполагал, что в текущей локали, но, судя по всему, нет.
Какое здесь наиболее универсальное (в предположении кроссплатформенности) решение?
Здравствуйте, _hum_, Вы писали:
__>Какое здесь наиболее универсальное (в предположении кроссплатформенности) решение?
utf-8 строку не пробовали передавать?
Здравствуйте, GhostCoders, Вы писали:
GC>Здравствуйте, _hum_, Вы писали:
__>>Какое здесь наиболее универсальное (в предположении кроссплатформенности) решение? GC>utf-8 строку не пробовали передавать?
нет, не пробовал, потому как даже если получится, то это не подойдет как решение — не гарантирует, что пройдет при всех других случаях (на других платформах).
Здравствуйте, _hum_, Вы писали:
__>нет, не пробовал, потому как даже если получится, то это не подойдет как решение — не гарантирует, что пройдет при всех других случаях (на других платформах).
не совсем понятно, какое решение ожидаете вы. подозреваю, что в таком случае универсального решения не существует,
так как на каждой платформе реализация MPI "implementation specific" по отношению с кодировке входного файла для MPI_FileOpen.
Здравствуйте, GhostCoders, Вы писали:
GC>Здравствуйте, _hum_, Вы писали:
__>>нет, не пробовал, потому как даже если получится, то это не подойдет как решение — не гарантирует, что пройдет при всех других случаях (на других платформах). GC>не совсем понятно, какое решение ожидаете вы. подозреваю, что в таком случае универсального решения не существует, GC>так как на каждой платформе реализация MPI "implementation specific" по отношению с кодировке входного файла для MPI_FileOpen.
ну, может есть какие макросы, настройки, функции, которые позволяют переключить/узнать с какой кодировкой работают функции файловой системы...
Здравствуйте, _hum_, Вы писали:
__>ну, может есть какие макросы, настройки, функции, которые позволяют переключить/узнать с какой кодировкой работают функции файловой системы...
Теперь понятно. Но данной информацией не владею.
Могу посоветовать покопаться в текущей реализации MPI (в хидер-файлах) на предмет наличия таких макросов.
А вообще, подозреваю, что MPI перебрасывает такой вызов при помощи стандартного fopen или fstream C/C++ для текущей ОС.
По опыту могу сказать что fopen\fstream на Linux поддерживают кодировку utf-8,
а вот для Windows надо передавать текущую локаль или использовать тип wchar_t. На Mac вроде тоже как utf-8 работает.