*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->HP-UX 11i man pages -> sendfile64 (2)              
Title
Content
Arch
Section
 

Contents


 sendfile64(2)                                                 sendfile64(2)




 NAME    [Toc]    [Back]
      sendfile64() - send the contents of a Large File through a socket

 SYNOPSIS    [Toc]    [Back]
      #include <sys/socket.h>

      sbsize64_t sendfile64(int s, int fd, off64_t offset, bsize64_t nbytes,
              const struct iovec *hdtrl, int flags);

 DESCRIPTION    [Toc]    [Back]
      The sendfile64() system call transmits the contents of a file
      (including a Large File (greater than 2GB)) associated with the file
      descriptor fd, plus an optional header and trailer buffers across a
      socket connection specified by s.  sendfile64() should be used by 32-
      bit applications using Large Files; however, 64-bit applications can
      use sendfile64() for compatibility. 64-bit applications can also use
      sendfile() directly to send Large Files without special compile flags.
      sendfile64() can be used only when the socket is in a connected state.

      offset specifies the offset within the file at which to start the file
      data transfer.

      nbytes is the number of bytes to be sent from the file.  If this
      parameter is set to zero, data from the offset to the end of the file
      will be sent.

      hdtrl points to a two entry iovec structure.  See write(2) for a
      description of the iovec structure.  The first entry is for header
      information. If this pointer is non-NULL, the contents of the buffer
      are sent before sending any data from the file.  The second entry is
      for trailer information. If this pointer is non-NULL, the contents of
      the buffer will be sent after the data from the file. If both pointers
      are NULL, or hdtrl is a NULL pointer, only the specified range of the
      file will be transferred.

      At the end of the call, the socket connection will be left completely
      open for both reading and writing, unless the flags parameter is set
      to:

      SF_DISCONNECT       Disallow further sends and receives.

    Notes    [Toc]    [Back]
      If no buffer space is available to hold the data to be transmitted,
      sendfile64() blocks unless nonblocking mode is enabled.  See send(2)
      for a description of the nonblocking mode behavior.

      Applications that compile with the _FILE_OFFSET_BITS=64 compile flag
      have sendfile() system calls converted implicitly to sendfile64().
      Also bsize_t, sbsize_t, and off_t types are implicitly converted to
      bsize64_t, sbsize64_t, and off64_t types.




 Hewlett-Packard Company            - 1 -   HP-UX 11i Version 2: August 2003






 sendfile64(2)                                                 sendfile64(2)




      Both the _LARGEFILE64_SOURCE and _FILE_OFFSET_BITS=64 compile flag
      must be used to explicitly use the sendfile64() system call. These are
      the recommended compile flags for both applications using either
      sendfile() or sendfile64() that may want to access Large Files.

 RETURN VALUE    [Toc]    [Back]
      Upon successful completion, sendfile64() returns the number of bytes
      sent. This includes the header, trailer, and the file contents.
      Otherwise, -1 is returned and errno is set to indicate the error.

 ERRORS    [Toc]    [Back]
      If sendfile64() fails, errno is set to one of the following values.

      [EBADF]             An invalid socket descriptor s , or file
                          descriptor fd is specified.

      [ENOTSOCK]          s is a valid file descriptor, but it is not a
                          socket.

      [EFAULT]            An invalid pointer was specified in the hdtrl
                          parameter or the iovec structure.

      [ENOBUFS]           No buffer space is available in the system to
                          perform the operation.

      [EINTR]             The operation was interrupted by a signal before
                          any data was sent.  (If some data was sent,
                          sendfile64() returns the number of bytes sent
                          before the signal, and [EINTR] is not set).

      [EINVAL]            The offset or flags parameter is invalid.

                          The hdtrl parameter, or a length in the iovec
                          structure is invalid.

      [ENOTCONN]          A sendfile64() on a socket that is not connected,
                          or a sendfile64() on a socket that has not
                          completed the connect sequence with its peer, or
                          is no longer connected to its peer.

      [EPIPE]             With SIGPIPE signal.  An attempt was made to send
                          on a socket that was connected, but the connection
                          has been shut down either by the remote peer or by
                          this side of the connection.  Note that the
                          default action for SIGPIPE, unless the process has
                          established a signal handler for this signal, is
                          to terminate the process.

      [EAGAIN]            Nonblocking I/O is enabled using the O_NONBLOCK
                          flag with fcntl(), and the requested operation
                          would block.



 Hewlett-Packard Company            - 2 -   HP-UX 11i Version 2: August 2003






 sendfile64(2)                                                 sendfile64(2)




      [EWOULDBLOCK]       The socket is marked non-blocking and the
                          requested operation would block.

      [ENOMEM]            No memory is available in the system to perform
                          the operation.

      [EOPNOTSUPP]        The socket is not a TCP socket.

      Return Value == 0   An application has opened a large file (see
                          open(2)) and is trying to use sendfile64 without
                          having been compiled with _LARGEFILE64_SOURCE and
                          _FILE_OFFSET_BITS=64 compile flags.

 SEE ALSO    [Toc]    [Back]
      connect(2), creat64(2), read(2), send(2), sendfile(2), shutdown(2),
      socket(2), tcp(7P), write(2).


 Hewlett-Packard Company            - 3 -   HP-UX 11i Version 2: August 2003
[ Back ]
      
      
 Similar pages
Name OS Title
sendfile Tru64 Send the contents of a file through a socket
sendfile HP-UX send the contents of a file through a socket
sendfile FreeBSD send a file to a socket
DtEditorReplaceFromFile HP-UX replace a portion of the contents of a DtEditor widget with the contents of a file
sendto Tru64 Send messages through a socket
sendmsg NetBSD send a message from a socket
send IRIX send a message from a socket
send NetBSD send a message from a socket
send HP-UX send a message from a socket
sendto HP-UX send a message from a socket
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service