In una classe di laurea, abbiamo dovuto usare i semafori per realizzare il lavoro con i thread.sem_init (...): A cosa serve il parametro pshared?
Siamo stati indirizzati all'utilizzo di sem_init
insieme a una serie di altre procedure sem_ *, ma non abbiamo ricevuto molte informazioni sui dettagli di ciascuno di questi metodi sem_ *.
Il prototipo (e file di intestazione) di sem_init
è the following:
#include <semaphore.h>
int sem_init(sem_t *sem, int pshared, unsigned int value);
ma non capisco quale sia il valore pshared viene utilizzato per. Secondo opengroup.org:
Se l'argomento
pshared
ha un non zero valore, allora il semaforo è condivisa tra processi; in questo caso, qualsiasi processo che possono accedere al semaforosem
può utilizzaresem
per eseguiresem_wait()
,sem_trywait()
,sem_post()
, esem_destroy()
operazioni.
ma immagino che non capisco la differenza tra diciamo 1,2, 10, 25, 50000, ecc penso che sta dicendo che se il valore è 0, allora il semaforo non è condivisa. (Ma allora, qual è il punto?)
Come utilizzare in modo appropriato questo parametro pshared
?
Risposta stupenda, grazie per la spiegazione. –
Sei il benvenuto. Grazie per il complimento :). – quark
Non è il PC a chiamare questa versione come appartenente a GLIBC. È POSIX.1-2001. –