getline

C++のgetline(後で扱う)に行く前に、C言語にもgetlineはある。

Man page of GETLINE

行ごとに文字列を取得していくが、C++の場合と違って、区切り文字(デリミタ)指定の引数が無い。
(その場合は、getdelimを使う模様・・・。)
また、ISO非標準(POSIX標準)なので、"UNIXシステムコール"カテゴリにした。
(この辺のカテゴリ分けも考えないと・・・。)
さらに、NULLのメモリ領域ポインタポインタを渡すと、動的にバッファを確保してくれるらしいが、今回は自前で用意してみる。

feofで使ったtest.txtを持ってきて読み込む。

$ cat test.txt
ABCDE
FGHIJ
KLMNO$ vi getline.c
$ gcc getline.c -o getline
$ ./getline
line = [ABCDE
]
line = [FGHIJ
]
line = [KLMNO]
$

取得した行文字列を'['と']'で括ったが、行文字列に改行は含まれている。

Sample/unixsyscall/getline/getline/src/getline at master · bg1bgst333/Sample · GitHub