2017-11-22 12 views
1

バイト単位でが非常に非効率的であると想像していますが、バルクでの読み込みは、ほとんどの場合、必要以上に読み込み、後続のすべての読み込み操作で読み込み入力の残りの部分をグローバルコンテキストに保存する必要があります。私は何が欠けていますか?getlineはシークせずに改行までどのように読み込みますか?

答えて

3

プロトタイプは次のとおりです。だから、それは明らかにすでにバッファされFILEを、使用しています

ssize_t getline(char **lineptr, size_t *n, FILE *stream); 

。したがって、文字を読むことは効率的ではありません。

+0

コンテキストを保持している 'FILE'です。ありがとう。 – xificurC

2

これは、バッファリングされたioが対象です。つまり、Cライブラリは、実装に依存するがサイズはかなり大きいフルバッファを読み込み、getline関数はそのメモリバッファ内の最初の改行を探して、ポインタを次のアクセスのために配置します。

関連する問題