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)