The shm_unlink function removes the name of the shared memory object named by the string pointed to by name. If one or more references to the shared memory object exist when the object is unlinked, the name is removed before shm_ unlink returns, but the removal of the memory object contents is postponed until all open and map references to the shared memory object have been removed. Even if the object continues to exist after the last shm_unlink, reuse of the name subsequently causes shm_unlink to behave as if no shared memory object with this name exists (that is, shm_ open will fail if O_CREAT is not set, or will create a new shared memory object if O_CREAT is set).