71 char name[16] =
"/shm-";
74 char *
const limit = name +
sizeof(name) - 1;
80 start = name + strlen(name);
81 for (tries = 0; tries < 4; tries++) {
82 clock_gettime(CLOCK_REALTIME, &tv);
83 r = (
unsigned long)tv.tv_sec + (
unsigned long)tv.tv_nsec;
84 for (fill = start; fill < limit; r /= 8)
85 *fill++ =
'0' + (r % 8);
88 name, O_RDWR | O_CREAT | O_EXCL | O_NOFOLLOW, 0600);
91 name, O_RDWR | O_CREAT | O_EXCL, 0600);
94 return shm_unlink_or_close(name,
fd);