C和C ++之间的差异(lseek())

时间:2017-06-26 12:33:43

标签: c++ c lseek

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

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

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

非常感谢

1 个答案:

答案 0 :(得分:1)

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

  

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

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

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