NAME¶
gfs_pio_gets - 一行読み込み
SYNOPSIS¶
#include <gfarm/gfarm.h>
char *gfs_pio_gets (GFS_File
f, char * s, size_t
size );
DESCRIPTION¶
ファイル
gf
から、文字列
s
に、一行読み込みます。
引数
size に文字配列
s
の大きさを指定します。
関数
gfs_pio_getline(3)
と異なり、この関数は行末の改行記号を削除
しません。一行の内容を文字配列に納めきれない場合、あるいはファイル
末尾に改行記号が存在しない場合、入力結果の文字配列の末尾に改行記号
がつきません。しかし文字列の終わりを示す
'\0'
文字は、どちらの場合
でも付加されます。
EOF
は、入力結果の文字配列の長さが
0
文字であることで判断します。
RETURN VALUES¶
- NULL
- 正常終了を示します。
- GFARM_ERR_NO_MEMORY
- メモリ不足のため処理を中止しました。
- その他
- 上記以外のエラーが生じたことを示します。
EXAMPLES¶
GFS_PIO_GETS
関数の使用例¶
#include <stdio.h>
#include <stdlib.h>
#include <gfarm/gfarm.h>
int
main(int argc, char **argv)
{
char *e;
GFS_File gf;
char buffer[512];
e = gfarm_initialize(&argc, &argv);
if (e != NULL) {
fprintf(stderr, "gfarm_initialize: %s\n", e);
return (EXIT_FAILURE);
}
if (argc <= 1) {
fprintf(stderr, "missing gfarm filename\n");
return (EXIT_FAILURE);
}
e = gfs_pio_open(argv[1], GFARM_FILE_RDONLY, &gf);
if (e != NULL) {
fprintf(stderr, "%s: %s\n", argv[1], e);
return (EXIT_FAILURE);
}
e = gfs_pio_set_view_global(gf, 0);
if (e != NULL) {
fprintf(stderr, "%s: gfs_pio_set_view_global: %s\n",
argv[1], e);
return (EXIT_FAILURE);
}
while ((e = gfs_pio_gets(gf, buffer, sizeof buffer)) != NULL &&
*buffer != '\0') {
printf("got: %s", buffer);
}
if (e != NULL) {
fprintf(stderr, "ERROR: %s\n", e);
return (EXIT_FAILURE);
}
e = gfs_pio_close(gf);
if (e != NULL) {
fprintf(stderr, "gfs_pio_close: %s\n", e);
return (EXIT_FAILURE);
}
e = gfarm_terminate();
if (e != NULL) {
fprintf(stderr, "gfarm_initialize: %s\n", e);
return (EXIT_FAILURE);
}
return (EXIT_SUCCESS);
}
SEE ALSO¶
gfs_pio_open(3),
gfs_pio_getline(3),
gfs_pio_readline(3),
gfs_pio_readdelim(3)