Различие между C и C ++ (lseek ())

Я пытаюсь изменить API моего предыдущего проекта, над которым я работал, написанного на 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);

большое спасибо

0

Решение

Стандарт C ++ явно позволяет использовать стандартную библиотеку C в C ++:

17.2 Стандартная библиотека C [library.c] Стандартная библиотека C ++ также предоставляет возможности стандартной библиотеки C, соответствующим образом приспособленной к
обеспечить безопасность статического типа.

Здесь lseek функция определяется не стандартом C, а стандартом POSIX.1. В любом случае, в системах, которые его поддерживают, он включен в стандартную библиотеку C и сделан доступным для программы C ++ точно так же, как стандарт С функции.

При этом, не зная больше о ваших требованиях (переносимость, производительность, варианты использования и т. Д.), Я не могу сказать, будет ли хорошей идеей использовать низкоуровневые функции ввода-вывода или было бы лучше переключиться на потоки C ++.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]