Unix C++第三方API调用

Unix C++ Third party API Call

本文关键字:调用 API 第三方 C++ Unix      更新时间:2023-10-16

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

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

有什么方法可以把这两条消息分开吗?第三方SDK文档没有提供任何错误/消息处理机制或任何线程同步机制。

有人能帮忙吗?

线程输出同步和缓冲必须在输出它的应用程序级别上完成。您得到的东西已经交错,无法合理地分开。所有线程/进程都在向同一个文件描述符写入(更糟糕的是,如果它们使用stdout,它们每个都有自己的输出缓冲区),所以如果应用程序没有调度它们的输出消息,那么设计就被破坏了,你几乎无能为力

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