Я учился создавать общую память, используя shmget()
.До этого момента все примеры, которые я обнаружил, используют формат IPC_CREAT | <shm_perm>
для флага (или что-то подобное).Когда я проверял, мой bits/ipc.h
контент IPC_CREAT
был определен как 01000
.
Я пытался создать общую память с разрешением 0600
.Сначала я использовал формальный метод => IPC_CREAT | 0600
, он работал.Тогда вместо побитового ИЛИ-двух, только что использовавшихся 01600
, я не мог наблюдать никакой разницы в результате, но не уверен, применимо ли это ко всем случаям, так как я новичок в программировании на Си.
Этоможет быть что-то тривиально, но мне интересно, почему лучше использовать метод OR-ing, а не просто объединять 01
с требуемым типом разрешения (я обнаружил, что последний метод легче запомнить и ввести).
- Есть ли какая-либо особенность, которая есть у формального метода, а у последнего отсутствует (возможно, связанный с ОС)?
- Безопасно ли использоватьпоследний метод, если мне удобнее с этим?