Unix C ++第三方API调用

时间:2015-02-09 11:50:07

标签: libraries c++

我正在使用从我的C ++应用程序中的第三方SO文件导出的API。第三方API正在将一些消息写入我的unix控制台。我假设API使用多线程的概念,因为我可以发现进入控制台的输出是混合的(从我的程序输出以及从第三方API输出),如下所示:

  • 来自我的计划的消息:My program
  • 来自API的消息:I am an API
  • 最终输出:My I am an program API

是否有任何方法可以将这两个消息分开? 第三方SDK文档不提供任何错误/消息处理机制或任何线程同步机制。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

线程输出同步和缓冲必须在输出它的应用程序级别上完成。你得到的已经是交错的,不能合理地分开。所有线程/进程都写入相同的文件描述符(更糟糕的是,如果它们使用stdout,它们每个都有自己的输出缓冲区),所以如果该应用程序没有调度它们的输出消息,那么设计就会被破坏你可以做的很少。

它是什么类型的应用程序?如果它是一个shell脚本包装器,则有可能在顶部完成并行化,并且可以正确地进行反汇编和缓冲。