linux手册翻译——ucontext(3)

2021.06.22 13:42:47字数 213阅读 240


ucontext —— 用户线程上下文


Standard C Library (libc, -lc)

#include <ucontext.h> 

/* Userlevel context.  */
typedef struct ucontext_t
  {
    unsigned long int __ctx(uc_flags);
    struct ucontext_t *uc_link;
    stack_t uc_stack;
    mcontext_t uc_mcontext;
    sigset_t uc_sigmask;
    struct _libc_fpstate __fpregs_mem;
    __extension__ unsigned long long int __ssp[4];
  } ucontext_t;


ucontext_t 是用于保存用户线程的上下文的结构类型。 线程的上下文包括其堆栈、寄存器和阻塞信号列表(即信号掩码)。
ucontext_t 结构至少包含以下字段:

  • ucontext_t *uc_link
    当前上下文结束运行时,切换到的上下文
  • sigset_t uc_sigmask
    信号掩码
  • stack_t uc_stack
    用户线程的栈空间
  • mcontext_t uc_mcontext
    保存的寄存器信息

当上下文的入口点函数返回时,uc_link 字段指向要恢复的上下文。 如果 uc_link 等于 NULL,则在此上下文返回时进程退出
uc_mcontext 字段依赖于具体的CPU硬件,可移植应用程序应将其视为不透明的。
此外定义了以下函数来操作 ucontext_t:

int getcontext(ucontext_t *);
ucontext_t * getcontextx(void);
int setcontext(const ucontext_t *);
void makecontext(ucontext_t *, void (*)(void), int, ...);
int swapcontext(ucontext_t *, const ucontext_t *);

man 手册翻译

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值