要看报错的阶段,是在编译还是链接阶段.
如果编译时函数没有找到,那是头文件的问题,如果链接时未定义引用,那是c库的问题.
如果你的头文件都正常包含了,那可能你的c库没有使能semaphore的支持.
你好。不只是sem.h,很多头文件都有/usr/include/linux和/usr/include/sys两个版本。
sys目录里面的头文件用于应用程序或者glibc标准库
如果我的回答没能帮助您,请继续追问。
你看的是内核编程或驱动,用的是内核的头文件,在内核目录源码的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 一书
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)