gfs_pio_recvfile

## Name

gfs_pio_recvfile — receive a Gfarm file to local machine

## Synopsis

    #include <gfarm/gfarm.h>

`gfarm_error_t gfs_pio_recvfile(` | r_gf, |
| r_off, |
| w_fd, |
| w_off, |
| len, |
| recvp`)`; |

`GFS_File r_gf`;
`gfarm_off_t r_off`;
`int w_fd`;
`gfarm_off_t w_off`;
`gfarm_off_t len`;
`gfarm_off_t * recvp`;

## DESCRIPTION

Receives `len` bytes of data from the position specified by the offset `r_off` in a Gfarm file `r_gf`, to the position specified by the offset `w_off` of a local file which is pointed by a file descriptor `w_fd`. If len is -1, this function transfers until the end of the file. The transfered bytes will be stored to the memory pointed by `recvp` when `recvp` is not `NULL`. If `len` is a positive value, and the value pointed by `recvp` is less than `len`, that means the transfer reached EOF.

## RETURN VALUES

`GFARM_ERR_NO_ERROR`

  The function terminated successfully.

`GFARM_ERR_OPERATION_NOT_PERMITTED`

  `gf` does not specify a regular file.

`GFARM_ERR_BAD_FILE_DESCRIPTOR`

  The file descripter specified by `gf` is not a valid or is not open for reading.

`GFARM_ERR_NO_FILE_SYSTEM_NODE`

  There is no available file system node.

`GFARM_ERR_NO_MEMORY`

  Insufficient memory was available.

Others

  An error except the above occurred. The reason is shown by gfarm_error_string(3).

## SEE ALSO

gfs_pio_create(3), gfs_pio_open(3), gfs_pio_read(3), gfs_pio_sendfile(3)