公开学习文档

公开学习文档


不可重入函数

<h2>常见的不可重入函数</h2> <p>满足下面条件之一的多数是不可重入函数:</p> <p>(1)使用了静态数据结构或者全局变量;</p> <p>(2)调用了malloc或free;</p> <p>(3)调用了标准I/O函数;标准io库很多实现都以不可重入的方式使用全局数据结构。</p> <p>(4)进行了浮点运算.许多的处理器/编译器中,浮点一般都是不可重入的 (浮点运算大多使用协处理器或者软件模拟来实现。</p> <p>(5)调用printf。</p> <p>不可重入函数在多线程场景下使用可能会有问题,需要谨慎。常见的不可重入函数:</p> <pre><code class="language-c">rand, srand, setlocale, getenv, getenv_s, gethostbyname, gethostbyaddr, strtok, strerror, inet_ntoa, asctime, ctime, localtime, gmtime, tmpnam, mbrtoc16, mbrtoc32, c16rtomb, c32rtomb, atomic_init</code></pre> <h2>参考文档</h2> <p>&gt; <a href="https://zhidao.baidu.com/question/141509392.html">https://zhidao.baidu.com/question/141509392.html</a> &gt; <a href="https://blog.csdn.net/zhongleyun/article/details/120837574">https://blog.csdn.net/zhongleyun/article/details/120837574</a></p>

页面列表

ITEM_HTML