Site icon EfmSoft

Что означает код errno 17 (EEXIST)?

 
Также может означать:
КонстантаТипОС
ERROR_NOT_SAME_DEVICEОшибка WindowsWindows
KERN_INVALID_RIGHTКод возврата ядра macOSmacOS
ippStsUnderflowСтатус Intel IPPЛюбая
THREAD_NOT_MUTEX_OWNERКод BSODWindows
Предыдущий Следующий
EBUSY EXDEV

EEXIST

Почему это может быть нормальным результатом гонки

EEXIST означает, что API должен был создать объект только при отсутствии целевого имени, однако имя уже существует. Классический файловый пример — open() с одновременными флагами O_CREAT и O_EXCL; тот же принцип используют создание ссылок и современные варианты переименования без замены. Ошибка может быть ожидаемой, когда несколько обработчиков пытаются занять одно имя.

Нередко этот результат подтверждает, что программа правильно применила атомарную операцию «создать или отказать», а не отдельную проверку существования. Проверка «есть ли файл?» создаёт гонку: другой процесс может создать объект между проверкой и запросом на создание.

Как правильно обработать

Ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.

Exit mobile version