OS X中的线程未声明的错误?

时间:2015-06-10 14:23:40

标签: c multithreading macos

错误:使用未声明的标识符'CLONE_FS' 错误:使用未声明的标识符'CLONE_FILES' 错误:使用未声明的标识符'CLONE_SIGHAND'  错误:使用未声明的标识符'CLONE_VM'

我使用ubuntu代码一些关于进程和线程可以在ubuntu中运行但在我的mac中给我这个错误。我可以修复它吗?如果我将此宏更改为十进制此错误也消失了。

main(int argc,char *argv[])
{
pthread_mutex_init(&mutex,NULL);
sem_init(&product,0,0);
sem_init(&warehouse,0,8);
int clone_flag,arg,retval;
clone_flag = CLONE_VM|CLONE_SIGHAND|CLONE_FS|CLONE_FILES;
int i;
char *stack;
for(i=0;i<2;i++)
{
    arg = i;
    stack = (char *)malloc(4096);
    retval = clone((void *)producer,&(stack[4095]),clone_flag,(void *)&arg);
    stack = (char *)malloc(4096);
    retval = clone((void *)consumer,&(stack[4095]),clone_flag,(void *)&arg);
}
exit(1);
}

0 个答案:

没有答案