Belle II Software  release-08-01-10
removeshm.cc
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 
9 #include <string>
10 
11 #include <stdio.h>
12 #include <stdlib.h>
13 #include <unistd.h>
14 
15 #include <sys/ipc.h>
16 #include <sys/shm.h>
17 
18 using namespace std;
19 
20 int main(int argc, char** argv)
21 {
22  if (argc < 2) {
23  printf("remove : shmname \n");
24  exit(-1);
25  }
26  string pathname = string("/tmp/") + string(getenv("USER"))
27  + string("_SHM_") + string(argv[1]);
28  FILE* fd = fopen(pathname.c_str(), "r");
29  if (fd == NULL) {
30  printf("[removeshm] No such RingBuffer : %s\n", argv[1]);
31  exit(-1);
32  }
33  int shmid;
34  fscanf(fd, "%d", &shmid);
35  fclose(fd);
36 
37  printf("Removing shmid = %d\n", shmid);
38  shmctl(shmid, IPC_RMID, (struct shmid_ds*) 0);
39  printf("Removing pathfile = %s\n", pathname.c_str());
40  unlink(pathname.c_str());
41 
42  // remove id file
43  char fname[1024];
44  sprintf(fname, "/tmp/SHM%d-SEM0-SHM_%s", shmid, argv[1]);
45  unlink(fname);
46 }
47 
48 
49 
int main(int argc, char **argv)
Run all tests.
Definition: test_main.cc:91