У меня возникли проблемы с созданием именованного канала в Android, а приведенный ниже пример иллюстрирует мою дилемму:
res = mkfifo("/sdcard/fifo9000", S_IRWXO);
if (res != 0)
{
LOG("Error while creating a pipe (return:%d, errno:%d)", res, errno);
}
Код всегда печатает:
Error while creating a pipe (return:-1, errno:1)
Я не могу точно понять, почему это не удается. Приложение имеет разрешения android.permission.WRITE_EXTERNAL_STORAGE. Я могу создать нормальные файлы с точно таким же именем в одном месте, но создание труб завершается неудачно. Труба, о которой идет речь, должна быть доступна из нескольких приложений.
- Я подозреваю, что никто не может создавать каналы в /sdcard. Где это было бы лучшим местом для этого?
- Какую настройку мачты следует установить (2-й параметр)?
- Требуется ли приложению дополнительные разрешения?