你可以把其中给一个线程的sem_wait跟sem_post换个位置试一下
编译时加上参数:-lpthread要看报错的阶段,是在编译还是链接阶段.
如果编译时函数没有找到,那是头文件的问题,如果链接时未定义引用,那是c库的问题.
如果你的头文件都正常包含了,那可能你的c库没有使能semaphore的支持.
线程参数,传地址使用动态分配吧,你只用一个buffer,后面的很可能就把前面的给覆盖了。把所有的输出printf使用一个互斥的信号量同步一下就行了吧,C的标准库不是线程安全的。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)