Back to index

glibc  2.9
Functions
tst-sem9.c File Reference
#include <errno.h>
#include <fcntl.h>
#include <semaphore.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

Go to the source code of this file.

Functions

static void remove_sem (int status, void *arg)
int main (void)

Function Documentation

int main ( void  )

Definition at line 36 of file tst-sem9.c.

{
  sem_t *s;
  int i;

  on_exit (remove_sem, (void *) "/glibc-tst-sem9");

  for (i = 0; i < 3; ++i)
    {
      s = sem_open ("/glibc-tst-sem9", O_CREAT, 0600, 1);
      if (s == SEM_FAILED)
       {
         if (errno == ENOSYS)
           {
             puts ("sem_open not supported.  Oh well.");
             return 0;
           }

         /* Maybe the shm filesystem has strict permissions.  */
         if (errno == EACCES)
           {
             puts ("sem_open not allowed.  Oh well.");
             return 0;
           }

         printf ("sem_open: %m\n");
         return 1;
       }

      /* Now close the handle.  */
      if (sem_close (s) != 0)
       {
         puts ("sem_close failed");
         return 1;
       }

      /* And remove it.  */
      if (sem_unlink ("/glibc-tst-sem9") != 0)
       {
         puts ("sem_unlink failed");
         return 1;
       }
    }

  return 0;
}

Here is the call graph for this function:

static void remove_sem ( int  status,
void *  arg 
) [static]

Definition at line 29 of file tst-sem9.c.

{
  sem_unlink (arg);
}

Here is the call graph for this function:

Here is the caller graph for this function: