Как fgetc работает внутри - PullRequest
2 голосов
/ 20 марта 2012

Действительно ли он читает символ за символом или считывает некоторые байты в буфер ядра и возвращает пользовательский символ за символом?

То же самое с fgets?

Позвольте мне сказать, что я использую glibc и компилятор gcc.

1 Ответ

5 голосов
/ 20 марта 2012

Почти верно.Типичная современная реализация, которая имеет разделение пользователь / ядро, хранит байты в пользовательском буфере , а не в буфере ядра.Таким образом, многие вызовы fgetc фактически вызывают несколько истинных системных вызовов.

...