在研究生課上,我們不得不使用信號量來完成線程的工作。sem_init(...):什麼是pshared參數?
我們被指示使用sem_init
以及其他一些sem_ *過程,但我們沒有給出有關每個sem_ *方法的詳細信息。的sem_init
原型(和頭文件)是the following:
#include <semaphore.h>
int sem_init(sem_t *sem, int pshared, unsigned int value);
,但我不明白pshared的值用於。根據opengroup.org:
如果
pshared
論點有一個非零 值,則信號量進程之間共享 ;在這種情況下,任何 過程可以訪問該信號量sem
可以使用sem
執行sem_wait()
,sem_trywait()
,sem_post()
, 和sem_destroy()
操作。
但我想我不明白說1,2,10,25,50000等之間的區別。我認爲這是說如果該值爲0,則信號量不共享。 (但那麼,有什麼意義呢?)
我該如何恰當地使用這個pshared
參數?
真棒回答,謝謝你的解釋。 – 2009-08-18 14:32:19
非常歡迎。謝謝你的誇獎 :)。 – quark 2009-08-19 00:22:42
這不是PC把這個版本稱爲屬於GLIBC。這是POSIX.1-2001。 – 2012-07-23 04:59:32