qq_45753715 2021-05-16 18:54 采纳率: 0%
浏览 22

C语言实时环境下,开线程调用dll里的函数,遇到printf输出浮点型变量崩溃崩溃

原来不开线程串行运行时是正常的,开线程调用后出现的问题。 在库函数代码很少,printf次数很少(一两次)时偶尔不会崩溃,代码量较多时必崩。 输出的浮点型变量是库里的全局变量,试了下用%d输出全局int变量是正常运行的,但是用%f输出double变量就不行。 请问可能是什么原因及其解决方法。

  • 写回答

2条回答 默认 最新

  • benbenli 2021-05-16 20:13
    关注

    其实不是崩溃,而是俞渝printf不是原子操作,可以再操作过程种被截拳线程,或者标准输出(或文件)是同一个而且也不是原子操作。解决办法是给输出加锁,避免并发输出。

    评论

报告相同问题?

悬赏问题

  • ¥15 List<Class>有参构造
  • ¥20 搭建三相栅极电路后高侧浮动地VS存在电容特性
  • ¥20 云卓h12pro 数传问题
  • ¥20 请问有人知道怎么用工艺库里面的sdb文件通过virtuoso导出来library里面每个cell的symbol吗?
  • ¥20 海思 nnie 编译 报错
  • ¥50 决策面并仿真,要求有仿真结果图
  • ¥15 springboot接入微信支付SDK
  • ¥50 大区域的遥感影像匹配 怎么做啊
  • ¥15 求解答:pytorch跑yolov8神经网络受挫
  • ¥20 Js代码报错问题不知道怎么解决