c++ - 学习特定于 Linux 的 API 是否有意义?

标签 c++ c linux boost cross-platform

<分区>

我开始从 Windows 转向 Linux 开发。在此过程中,我需要“忘记”所有熟悉的 Windows API(WaitForSingleObjectCreateTimer 等),转而学习一堆 Linux 特定的 API。
那么,我的问题是……我应该这样做吗?
我的意思是,如果像 Boost 这样的跨平台库在 Linux 社区中很常用,我真的需要提前学习 Linux 特定的 API 吗?

我很清楚至少熟悉 API 是个好主意,但是......专业行业中最常见的是什么?大多数专注于 Linux 的软件公司是否使用跨平台库或特定于操作系统的 API?

最佳答案

这取决于您将要使用/需要的东西有多复杂。例如,Linux 有用于 System V 信号量的 SEM_UNDO 选项,当使用 boost 时,该选项不可用。一般来说, boost 可移植性不是免费的,您将只能使用不同 O/S 可能性的通用子集。如果这对你来说足够了,那就去 boost 并且不要处理(有时)晦涩的低级 API。这不仅应该使您的程序更可移植(在某种程度上),而且更不容易出错。

关于c++ - 学习特定于 Linux 的 API 是否有意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12027117/

相关文章:

c++ - 生成 m 和 n 之间的素数

linux - 如何将 Linux 管道用于用户定义的 Shell 脚本

regex - 正则表达式非结尾词linux终端

c - 如何使用C将奇数和偶数位置位存储到另一个指针?

根据我的编译器,C 命令行参数是整数。这是怎么回事?

c++ - 如何从 Linux 交叉编译为 32 位 Windows 可执行文件

c++ - 可变函数指针转换

c++ - 无法在 CLion 中构建 C++ 项目

c++ - 奇怪的段错误就在 main 的开始

C 简单程序不起作用