int pthread_mutex_init的获取互斥锁的范围
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了int pthread_mutex_init的获取互斥锁的范围相关的知识,希望对你有一定的参考价值。
参考技术Apthread_mutexattr_getpshared(3C)可用来返回由 pthread_mutexattr_setpshared() 定义的互斥锁变量的范围。
pthread_mutexattr_getpshared 语法
int pthread_mutexattr_getpshared(pthread_mutexattr_t *mattr, int *pshared);
#include <pthread.h>
pthread_mutexattr_t mattr;
int pshared, ret;/* get pshared of mutex */
ret = pthread_mutexattr_getpshared(&mattr, &pshared);
此函数可为属性对象 mattr 获取 pshared 的当前值。该值为 PTHREAD_PROCESS_SHARED 或 PTHREAD_PROCESS_PRIVATE。
pthread_mutexattr_getpshared 返回值
pthread_mutexattr_getpshared() 成功完成之后会返回零。其他任何返回值都表示出现了错误。如果出现以下情况,该函数将失败并返回对应的值。
EINVAL 描述: 由 mattr 指定的值无效。
int位数的获取及int类型转char *
C语言获取int位数:
int intlen(int num)
{
/*
参数:要获取长度的int类型数据
返回值:返回长度
*/
int tmpn=num;
int len=1;
while(tmpn/=10)
len++;
return len;
}
C语言int类型转char *类型:
void intostr(char *dest,int num,int intlen)
{
/*
参数:
dest---将int转换为char *后的存储位置
num---要转换的int类型值
intlen---int类型长度
*/
int tmpn2=num;
char tmpc[intlen+1];
int i=intlen-1;
tmpc[intlen]=‘\0‘;
while(tmpn2)
{
tmpc[i]=48+(tmpn2%10);
if(!(tmpn2/=10))
tmpc[i-1]=40+tmpn2;
i--;
}
memcpy(dest,tmpc,sizeof(tmpc));
}
例:
/////////////////////////////////////////////////////////////////////////////////////////////////////
#include <stdio.h>
#include <string.h>
int intlen(int num)
{
int tmpn=num;
int len=1;
while(tmpn/=10)
len++;
return len;
}
void intostr(char *dest,int num,int intlen)
{
int tmpn2=num;
char tmpc[intlen+1];
int i=intlen-1;
tmpc[intlen]=‘\0‘;
while(tmpn2)
{
tmpc[i]=48+(tmpn2%10);
if(!(tmpn2/=10))
tmpc[i-1]=40+tmpn2;
i--;
}
memcpy(dest,tmpc,sizeof(tmpc));
}
int main()
{
int num=1234567;
char str[intlen(num)+1];
intostr(str,num,intlen(num));
printf("%s\n",str);
return 0;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////
以上是关于int pthread_mutex_init的获取互斥锁的范围的主要内容,如果未能解决你的问题,请参考以下文章
int pthread_mutex_init的设置互斥锁类型的属性
ubuntu没有man pthread_mutex_init
ubuntu下 pthread_mutex_init man中查不到