如何从用户 space 访问 thread_info

How to access thread_info from user space

我知道 Linux 维护 task_struct(包括 thread_info)以访问不同的线程。我想知道一个线程本身是否可以访问它自己的 thread_info(类似于 current_thread_info())。

我想做的是当我 运行 一个线程时。我想知道 thread_info 中关于当前线程的一些标志的状态。我检查了 pthread 中的 API,但找不到任何 API。所以我的问题是

  1. 我可以从当前线程(用户空间)访问 thread_info 吗?
  2. 如果我们不能,为什么 Linux 没有为它提供 API?

不,您不能从用户空间访问 thread_info(好吧,除了使用特权内核 tracing/debugging 接口)。

没有API因为是architecture-specific;大多数标志仅在任务在内核中执行时才相关;最重要的是,它是一个内部实现细节,随时可能更改。

如果您针对感兴趣的特定标志提出另一个问题,可能还有另一种方法可以访问该信息。