Я не хочу создавать новый объект общей памяти, если он не выходит. Скорее верните ошибку в таком случае. Я хочу только открыть, если он уже существует.Как использовать shm_open для открытия существующего объекта общей памяти
-1
A
ответ
3
Прочитано shm_overview(7) & shm_open(3).
Если shm_open
является не дан на O_CREAT
флага он потерпит неудачу, если имя не существует, как open(2) делает. Если даны O_CREAT
иO_EXCL
, он также будет терпеть неудачу, если имя существует. Говорят, в shm_open(3), что отказ может произойти с:
ENOENT попытка была сделана shm_open() имя, которое не существовало, и O_CREAT не был указан.
EEXIST Оба параметра O_CREAT и O_EXCL были указаны в shm_open(), а объект общей памяти , указанный по имени, уже существует.
В некоторых системах Linux вы можете использовать /dev/shm/
, чтобы узнать о текущих сегментах разделяемой памяти POSIX.
Смежные вопросы
- 1. shm_open и ftruncate() в Программе общей памяти
- 2. Проверить размер общей памяти объекта POSIX
- 3. Как выбрать интерфейсы общей памяти в Linux?
- 4. сегмент разделяемой памяти и объект общей памяти
- 5. Указатели в общей памяти
- 6. Увеличение памяти для общей памяти
- 7. Как правильно использовать shm_open с mmap
- 8. Как писать на матрице в общей памяти?
- 9. Как реализовать динамическое изменение общей памяти?
- 10. POSIX Запись/чтение общей памяти
- 11. Получение offset_ptr объекта в общей памяти
- 12. Чтение Segfault из общей памяти
- 13. Использование fstat между shm_open и mmap
- 14. Очистка общей памяти OS X
- 15. OSX: shm_open возвращает ENAMETOOLONG
- 16. Назначение массива семафоров posix для общей памяти
- 17. Играя с shmat и shm_open
- 18. Page Cache для общей памяти
- 19. Значение MPI_Comm_Size для общей памяти
- 20. Требуется ли mmap shm_open?
- 21. поддержка golang для общей памяти
- 22. Как изменить путь shm_open?
- 23. Предотвращение использования общей памяти
- 24. Ошибка общей памяти Linux Linux - ftruncate
- 25. Как использовать Catch Block для общей ошибки
- 26. Изменение общей памяти POSIX. Рабочий пример
- 27. NoSuchKey ошибка для существующего объекта
- 28. MPI vs openMP для общей памяти
- 29. Использование общей памяти boost
- 30. Как переопределить метод существующего объекта?
Спасибо за ответ. Это помогло. –
Время, чтобы выяснить, что означает RTFM и STFW .... –
Второй вопрос: как узнать, если я открыл существующую общую память, я использую O_CREATE | O_RDWR. –