NAME¶
gfs_pio_gets - read one line
SYNOPSIS¶
#include <gfarm/gfarm.h>
char *gfs_pio_gets (GFS_File
f, char * s, size_t
size );
DESCRIPTION¶
gfs_pio_gets() reads one line from the file specified by the parameter
gf to the buffer specified by the parameter
s. You need to
specify the size of the buffer by the parameter
size.
Unlike
gfs_pio_getline(3), this function doesn't remove newline character at the
end of the buffer. But if whole contents of the line cannot be stored to the
buffer due to its length, or if the file reaches the end without newline,
there will be no newline at the end of the buffer. In any case, one '\0'
character is appended to the end of the buffer.
If the file reaches its end, the length of the string in the buffer becomes 0.
RETURN VALUES¶
- NULL
- The function terminated successfully.
- GFARM_ERR_NO_MEMORY
- Insufficient memory was available.
- Others
- An error except the above occurred. The reason is shown by
its pointed strings.
EXAMPLES¶
EXAMPLE OF GFS_PIO_GETS FUNCTION¶
#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)