首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何确定POSIX函数是否可重入?

如何确定POSIX函数是否可重入?
EN

Stack Overflow用户
提问于 2013-12-22 18:55:50
回答 1查看 529关注 0票数 1

在编写目录迭代器时,我发现readdir函数不是可重入的.readdir_r函数似乎是重入版本的,但我不知道如何证实这一点。虽然readdir被显式标记为不可重入,但是没有提到readdir_r

是否有办法检查特定POSIX函数的可重入性?如何检查POSIX函数的可重入性?

EN

回答 1

Stack Overflow用户

发布于 2013-12-22 19:05:15

这是一个针对重新进入的POSIX.1c政策。

这是我的总结。

  • 默认情况下,所有函数都是可重入的。
  • 由于各种原因,有些功能不能重新进入。他们将分离重新进入版本。它们也被显式标记。
  • 有些功能对于重入意味着巨大的性能损失。他们将通过牺牲安全来分离不可重入的单线程性能版本。它们也被显式标记。

这是另一个警告声明。

从文本中引用。

线程编程所需的头文件 #定义_REENTRANT #包括 #包含 _REENTRANT表示应该使用标准库的可重入版本(即线程安全)。 头文件pthread.h定义了POSIX线程API。 H头文件定义了进程和线程调度API。在这里解释的函数中,只有sched_yield()需要它。

无论如何,还有另外一个关于这些步骤不再需要的声明:https://stackoverflow.com/questions/6047333/is-it-required-for-me-to-add-a-reentrant-macro-during-compile-time-to-make-my-e似乎不再需要定义_REENTRANT了。

术语重入是单线程环境中遗留的术语。无论如何,POSIX.1c假定是多线程环境,它默认从其他线程案例重新输入。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20732882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档