The path argument does not necessarily represent a pathname (although it does in this and most other implementations). Two processes opening the same path are guaranteed to access the same shared memory object if and only if path begins with a slash (/) character.
Only the O_RDONLY, O_RDWR, O_CREAT, O_EXCL, and O_TRUNC flags may be used in portable programs.
The result of using open(2), read(2), or write(2) on a shared memory object, or on the descriptor returned by shm_open, is undefined. It is also undefined whether the shared memory object itself, or its contents, persist across reboots.
The shm_open and shm_unlink functions can fail with any error defined for open and unlink, respectively. In addition, the following errors are defined for shm_open: