0

我正在尝试重新设计我以前从事过的项目的 API,它是用 C 编写的,它可以在用 C++ 语言编写的应用程序中使用。

我在 C 语言lseek()中用于追逐表格、页面等。我的问题是,lseek()在 C++ 中仍然可以按照我使用它的方式使用它,如下面的示例代码:

/* Read page data from an offset. It assumes that pagenum is zero-indexed*/
lseek(bq.unixfd, PAGE_SIZE + (PAGE_SIZE * bq.pagenum), SEEK_SET);

多谢

4

1 回答 1

1

C++ 标准明确允许在 C++ 中使用 C 标准库:

17.2 C 标准库 [library.c]
C++ 标准库还提供了 C 标准库的功能,经过适当调整以确保静态类型安全。

这里的lseek函数不是由 C 标准定义的,而是由 POSIX.1 定义的。无论如何,在支持它的系统上,它都包含在标准 C 库中,并且可用于 C++ 程序,与标准C 函数完全相同。

话虽如此,在不了解您的更多要求(可移植性、性能、用例等)的情况下,我不能说使用低级 IO 函数是否是个好主意,或者切换到 C++ 流是否更好。

于 2017-06-26T13:18:25.903 回答