Unix C++ 第三方 API 调用

Posted

技术标签:

【中文标题】Unix C++ 第三方 API 调用【英文标题】:Unix C++ Third party API Call 【发布时间】:2015-02-09 11:50:06 【问题描述】:

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

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

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

谁能帮忙?

【问题讨论】:

这确实是图书馆创始人的问题。如果没有更多信息,这里的任何人都可以为您提供所需的帮助,这是值得怀疑的。 【参考方案1】:

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

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

【讨论】:

以上是关于Unix C++ 第三方 API 调用的主要内容,如果未能解决你的问题,请参考以下文章

Effective C++第三遍

在python中如何调用PCSC中的接口

传递给第三方 API 时的 C++ const std:string& 安全性

如何用python调用新浪微博的api

VS c++调用第三方库

使用第三方接口调用工具调用Jenkins REST Api