侧边栏壁纸
博主头像
noerror

虚灵不寐,众理具而万事出。

  • 累计撰写 239 篇文章
  • 累计创建 9 个标签
  • 累计收到 2 条评论
标签搜索

目 录CONTENT

文章目录

pthread_mutexattr_getpshared函数用法详解

noerror
2022-10-04 / 0 评论 / 0 点赞 / 121 阅读 / 490 字 / 正在检测是否收录...

pthread_mutexattr_getpshared函数用法详解

pthread_mutexattr_getpshared函数简介

  • 头文件包含
#include <pthread.h>
  • 函数定义
int pthread_mutexattr_getpshared(const pthread_mutexattr_t * attr ,
                                 int * pshared );
int pthread_mutexattr_setpshared(pthread_mutexattr_t * attr ,
                                 int  pshared );
  • 编译链接选项
-pthread

pthread_mutexattr_getpshared函数常见使用错误

  • 链接错误
    undefined reference to `pthread_mutexattr_getpshared'
    解决办法:添加链接选项
-pthread
  • 编译错误
    warning: implicit declaration of function ‘pthread_mutexattr_getpshared’ [-Wimplicit-function-declaration]
    解决办法:包含头文件
#include <pthread.h>

pthread_mutexattr_getpshared函数详细描述

这些函数获取并设置mutex attributes对象中的进程共享属性。必须适当地设置此属性,以确保正确、有效地操作使用此属性对象创建的互斥体。
进程共享属性可以具有以下值之一:

  • 使用此属性对象创建的 PTHREAD_PROCESS_PRIVATE 互斥体只能在初始化互斥体的同一进程中的线程之间共享。这是进程共享互斥体属性的默认值。
  • 使用此attributes对象创建的 PTHREAD_PROCESS_SHARED 互斥可以在访问包含该对象的内存的任何线程之间共享,包括不同进程中的线程。

pthread_mutexattr_getpshared ()将attr引用的互斥属性对象的进程共享属性的值放在pshared 指向的位置
pthread_mutexattr_setpshared ()将attr引用的互斥属性对象的进程共享属性的值设置为pshared 中指定的值
如果attr没有引用初始化的互斥属性对象,则行为未定义。

pthread_mutexattr_getpshared函数返回值

成功后,这些函数返回0。在出错时,它们返回一个正的错误号。

pthread_mutexattr_getpshared函数错误码

pthread_mutexattr_setpshared ()可能会失败,出现以下错误:

  • EINVAL 在pshared中指定的值无效。
  • ENOTSUP pshared is PTHREAD_PROCESS_SHARED但是该实现不支持进程共享互斥。
0

评论区