version 1.9, 2010/08/13 21:00:37
|
version 1.10, 2010/08/17 11:59:28
|
Line 40 sem_t *
|
Line 40 sem_t *
|
sem_init2(unsigned int valeur, enum t_semaphore semaphore) |
sem_init2(unsigned int valeur, enum t_semaphore semaphore) |
{ |
{ |
snprintf(noms_semaphores[semaphore], LONGUEUR_NOM_SEMAPHORE, |
snprintf(noms_semaphores[semaphore], LONGUEUR_NOM_SEMAPHORE, |
"/RPLSEM-%d-%llu-%d", (int) getpid(), |
"/RPL-SEM-%d-%llu-%d", (int) getpid(), |
(unsigned long long) pthread_self(), |
(unsigned long long) pthread_self(), |
(int) semaphore); |
(int) semaphore); |
return(sem_open(noms_semaphores[semaphore], O_CREAT, |
return(sem_open(noms_semaphores[semaphore], O_CREAT, |
Line 473 sem_t
|
Line 473 sem_t
|
sem_t *semaphore; |
sem_t *semaphore; |
|
|
# ifndef OS2 |
# ifndef OS2 |
|
file *desc; |
|
|
|
key_t clef; |
|
|
union semun argument; |
union semun argument; |
# endif |
# endif |
|
|
Line 656 sem_t
|
Line 660 sem_t
|
|
|
# ifndef OS2 |
# ifndef OS2 |
|
|
(*semaphore) = semget(ftok(nom_absolu, 1), 1, |
if ((desc = fopen(nom_absolu, "w")) == NULL) |
|
{ |
|
free(semaphore); |
|
free(nom_absolu); |
|
|
|
return(SEM_FAILED); |
|
} |
|
|
|
fclose(desc); |
|
|
|
if ((clef = ftok(nom_absolu, 1)) == -1) |
|
{ |
|
free(semaphore); |
|
free(nom_absolu); |
|
|
|
return(SEM_FAILED); |
|
} |
|
|
|
(*semaphore) = semget(clef, 1, |
((oflag & O_CREAT) == 0) ? 0 : IPC_CREAT | |
((oflag & O_CREAT) == 0) ? 0 : IPC_CREAT | |
((oflag & O_EXCL) == 0) ? 0 : IPC_EXCL | |
((oflag & O_EXCL) == 0) ? 0 : IPC_EXCL | |
((oflag & S_IRUSR) == 0) ? 0 : SEM_R | |
((oflag & S_IRUSR) == 0) ? 0 : SEM_R | |