当前位置: 技术问答>linux和unix
进程的类型互斥量属性头文件问题
来源: 互联网 发布时间:2016-12-23
本文导语: /*********************************************************************************/ /* 进程的类型互斥量属性 默认:PTHREAD_PROCESS_PRIVATE 0 PTHREAD_PROCESS_SHARED 1 */ /********************************************************************************/ #include #include ...
/*********************************************************************************/
/*
进程的类型互斥量属性
默认:PTHREAD_PROCESS_PRIVATE 0
PTHREAD_PROCESS_SHARED 1
*/
/********************************************************************************/
#include
#include
#include
#include
#include
int main()
{
pthread_mutexattr_t attr;
int type;
if (pthread_mutexattr_init(&attr) != 0) //初始线程属性,这是必须的
{
printf("pthread_attr_init error!n");
}
//头文件都有啊??怎么没定义啊??
printf("%d %d %d %dn", PTHREAD_MUTEX_NORMAL,
PTHREAD_MUTEX_ERRORCHECK,
PTHREAD_MUTEX_RECURSIVE,
PTHREAD_MUTEX_DEFAULT);
if (pthread_mutexattr_destroy(&attr) != 0) //销毁属性占的空间
{
printf("pthread_attr_init error!n");
}
return 0;
}
|
administrator@ubuntu:~/桌面/test$ gcc 1.c -o 1 -lpthread
administrator@ubuntu:~/桌面/test$ cat 1.c
#include
#include
#include
#include
#include
int main()
{
pthread_mutexattr_t attr;
int type;
if (pthread_mutexattr_init(&attr) != 0) //初始线程属性,这是必须的
{
printf("pthread_attr_init error!n");
}
//头文件都有啊??怎么没定义啊??
printf("%d %d %d %dn", PTHREAD_MUTEX_NORMAL,
PTHREAD_MUTEX_ERRORCHECK,
PTHREAD_MUTEX_RECURSIVE,
PTHREAD_MUTEX_DEFAULT);
if (pthread_mutexattr_destroy(&attr) != 0) //销毁属性占的空间
{
printf("pthread_attr_init error!n");
}
return 0;
}
administrator@ubuntu:~/桌面/test$ gcc 1.c -o 1 -lpthread
administrator@ubuntu:~/桌面/test$ ./1
0 2 1 0
administrator@ubuntu:~/桌面/test$
我这边可以编译通过, 我怀疑你那边的编程环境有问题
administrator@ubuntu:~/桌面/test$ cat 1.c
#include
#include
#include
#include
#include
int main()
{
pthread_mutexattr_t attr;
int type;
if (pthread_mutexattr_init(&attr) != 0) //初始线程属性,这是必须的
{
printf("pthread_attr_init error!n");
}
//头文件都有啊??怎么没定义啊??
printf("%d %d %d %dn", PTHREAD_MUTEX_NORMAL,
PTHREAD_MUTEX_ERRORCHECK,
PTHREAD_MUTEX_RECURSIVE,
PTHREAD_MUTEX_DEFAULT);
if (pthread_mutexattr_destroy(&attr) != 0) //销毁属性占的空间
{
printf("pthread_attr_init error!n");
}
return 0;
}
administrator@ubuntu:~/桌面/test$ gcc 1.c -o 1 -lpthread
administrator@ubuntu:~/桌面/test$ ./1
0 2 1 0
administrator@ubuntu:~/桌面/test$
我这边可以编译通过, 我怀疑你那边的编程环境有问题
|
手头没有linux系统,暂时无法查看。
不知道报的是编译错误还是链接错误。
如果是链接错误,只需加参数-lpthread即可;
g++ mutex.c -o mutex -lpthread。
如果是编译错误,那你就看看少哪个头文件吧,man手册里面应该有例子吧,看看就行
顺便说一下,这个是线程互斥锁。进程同步用这个应该是不行的吧;
不知道报的是编译错误还是链接错误。
如果是链接错误,只需加参数-lpthread即可;
g++ mutex.c -o mutex -lpthread。
如果是编译错误,那你就看看少哪个头文件吧,man手册里面应该有例子吧,看看就行
顺便说一下,这个是线程互斥锁。进程同步用这个应该是不行的吧;