侧边栏壁纸
博主头像
noerror

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

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

目 录CONTENT

文章目录

pthread_attr_setstackaddr函数用法详解

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

pthread_attr_setstackaddr函数用法详解

pthread_attr_setstackaddr函数简介

  • 头文件包含
#include <pthread.h>
  • 函数定义
int pthread_attr_setstackaddr(pthread_attr_t * attr \
int pthread_attr_getstackaddr(const pthread_attr_t * attr ,
                              void ** stackaddr );
  • 编译链接选项
-pthread

pthread_attr_setstackaddr函数常见使用错误

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

pthread_attr_setstackaddr函数详细描述

这些函数已经过时: do not use them 改用pthread_attr_setstack (3)和pthread_attr_getstack (3)。
pthread_attr_setstackaddr ()函数将attr引用的thread attributes对象的stack address属性设置为stackaddr 中指定的值,该属性指定使用thread attributes对象attr 创建的线程应该使用的堆栈位置
stackaddr应该指向调用方分配的至少有 PTHREAD_STACK_MIN 字节的缓冲区。分配的缓冲区的页应该是可读和可写的。
pthread_attr_getstackaddr ()函数返回stackaddr 指向的缓冲区中attr引用的thread attributes对象的堆栈地址属性

pthread_attr_setstackaddr函数返回值

如果成功,这些函数返回0;错误时,它们返回一个非零错误号。

pthread_attr_setstackaddr函数错误码

没有定义错误(但是应用程序仍然应该处理可能的错误返回)。

pthread_attr_setstackaddr函数其他说明

Do not use these functions!它们不能便携地使用,因为它们无法指定堆栈的增长方向或范围。例如,在堆栈向下增长的体系结构上,stackaddr指定所分配堆栈区域的highest地址之后的下一个地址。但是,在堆栈向上增长的体系结构上,stackaddr在分配的堆栈区域中指定lowest地址。相比之下,pthread_attr_setstack (3)和pthread_attr_getstack (3)使用的stackaddr始终是指向所分配堆栈区域中最低地址的指针(而stacksize参数指定堆栈的范围)。

0

评论区