main.c 976 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include <stdio.h>
  2. #include <unistd.h>
  3. #include <gfaipc.h>
  4. #define _UNUSED(v) v = v
  5. typedef struct _TESTSTRUCT
  6. {
  7. int nCounter1;
  8. int nCounter2;
  9. }TESTSTRUCT, *LPTESTSTRUCT;
  10. typedef const TESTSTRUCT *LPCTESTSTRUCT;
  11. #define _UUID_TESTSTRUCT "8c2e723a-5556-4d90-b5ed-bba8575b6f28"
  12. int main(int argc, char *argv[])
  13. {
  14. static HSHM hShm = NULL;
  15. LPTESTSTRUCT p = NULL;
  16. _UNUSED(argc);
  17. _UNUSED(argv);
  18. hShm = GfaIpcAcquireSHM(_UUID_TESTSTRUCT, sizeof(TESTSTRUCT), 1, "Teststruct");
  19. if(hShm)
  20. {
  21. p = (LPTESTSTRUCT)GfaIpcAcquirePointer(hShm);
  22. GfaIpcLockSHM(hShm);
  23. printf("In Lock 1!\n");
  24. GfaIpcLockSHM(hShm);
  25. printf("In Lock 2!\n");
  26. sleep(10);
  27. GfaIpcUnlockSHM(hShm);
  28. printf("Out of Lock 2!\n");
  29. sleep(2);
  30. GfaIpcUnlockSHM(hShm);
  31. printf("Out of Lock 1!\n");
  32. GfaIpcReleasePointer(hShm, p);
  33. GfaIpcReleaseSHM(hShm);
  34. }
  35. return 0;
  36. }