- 论坛徽章:
- 0
|
最近做一项移植工作,将应用层从MIPS移植到POWER PC,但是在某个模块的sem_wait函数上出错了,写了个测试程序:
代码一:。。。 。。。
if(0 != sem_init(&test_t, 0, 0))
{
printf("sem_init failed!\n");
return -1;
}
if(0 != sem_post(&test_t))
{
printf("sem_post failed!\n");
return -1;
}
if(0 != sem_wait(&test_t))
{
printf("sem_wait failed! ");
return -1;
}
printf("I'm here!\n")
。。。 。。。
代码二:。。。 。。。
if(0 != sem_init(&test_t, 0, 0))
{
printf("sem_init failed!\n");
return -1;
}
if(0 != sem_wait(&test_t))
{
printf("sem_wait failed! ");
return -1;
}
printf("I'm here!\n")
。。。 。。。
结果:
代码一:
打印:I‘m here
代码二:
打印:sem_wait failed!
后来获取器错误码,errno是38,错误提示是Function not implemented
问下各位,原本代码二应该阻塞在sem_wait哪里,但它返回出错了。这个错大概是怎么造成的?编译工具链的问题么?
在线等,谢谢! |
|