要看报错的阶段,是在编译还是链接阶段.
如果编译时函数没有找到,那是头文件的问题,如果链接时未定义引用,那是c库的问题.
如果你的头文件都正常包含了,那可能你的c库没有使能semaphore的支持.
你看的是内核编程或驱动,用的是内核的头文件,在内核目录源码的include里:<asm/semaphore.h>
void down(struct semaphore *sem)
int down_interruptible(struct semaphore *sem)
int down_trylock(struct semaphore *sem)
。。。。。。。
而应用编程对应的在/usr/include
一个是semaphore set 在 "sys/sem.h" 里
一个是semaphore 在semaphore里
至于这连个的区别和标准参见unix system program 一书
sem_acquire(PHP3 >= 3.0.6, PHP4)
sem_acquire --- 获得信号
语法 : int sem_acquire (int sem_identifier)
说明 :
成功则传回true,失败则传回false。
sem_acquire( )封锁(非必要的话)直到信号能被获得,如果获得信号超出max_acquire的值,则会先锁住信号再试着去获得信号。
在处理一请求之后,任何以处理所获得的信号但是却没有明确的释放,将会自动地释放并且将会产生警告。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)