我刚刚读完 Accelerated C++,所以我对 C++ 还很陌生,但我想学习 Unix/Linux 编程(如命令行应用程序和守护进程)。我看到每个人都推荐《Unix 环境中的高级编程》,但它似乎是面向 C 的。我知道 C++ 是从 C 中提取的,因此我可以在我的 C++ 项目中使用书中的每个函数,但例如 - 当涉及打开文件时:我应该使用
最佳答案
Unix API 是 C 语言(Windows API 也是如此);任何对 Unix 的调用都会看起来
就像 C 一样。但是,这并不能阻止您使用 C++:如果该函数
需要一个 char const*
,例如,您可以调用
std::string::c_str()
上的 std::string
。
无论您想要 Unix 函数(例如 read()
)还是 C++(>>
)
流)取决于您的需要。 C++ 功能通常位于
更高的水平; read()
只会读取字节数组,例如,
并且不会解析文本格式的整数。另一方面,你
使用 read()
及其组合进行更多低级控制
功能;例如,如果您需要事务完整性,则需要
使用 open()
,向其传递适当的标志,但该标志不可用
在 std::fstream::open() 中。更一般地说,C++ 函数
涉及与外部(或与其他线程)的交互的构建
底层 Unix 系统调用。他们提供了更高水平的
抽象,通常使用起来更简单,但在具体情况下
在这种情况下,它们可能无法提供较低级别可用的所有功能。
关于c++ - 使用 C++ 进行 Linux 编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28837631/