C fgets по сравнению с fgetc для чтения строки

Мне нужно прочитать строку текста (заканчивающуюся новой строкой), не делая предположений о длине. Итак, теперь я сталкиваюсь с возможностями:

  • Используйте fgets и каждый раз проверяйте, является ли последний символ новой строкой, и непрерывно добавляете в буфер
  • Прочтите каждый символ, используя fgetc и иногда realloc буфер

Интуиция подсказывает мне, что вариант fgetc может быть медленнее, но опять же, я не Я вижу, как fgets может это сделать, не исследуя каждого символа (к тому же моя интуиция не всегда так хороша). Линии довольно большие, поэтому производительность важна.

Я хотел бы знать плюсы и минусы каждого подхода. Заранее благодарю.

11
задан nc3b 3 March 2011 в 20:58
поделиться