#include #include #include int detachandremove(int shmid, void *shmaddr) { int error = 0; if (shmdt(shmaddr) == -1) error = errno; if ((shmctl(shmid, IPC_RMID, NULL) == -1) && !error) error = errno; if (!error) return 0; errno = error; return -1; }