123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- = ranch_transport:sendfile(3)
- == Name
- ranch_transport:sendfile - Send a file on the socket
- == Description
- [source,erlang]
- ----
- sendfile(Transport :: module(),
- Socket :: ranch_transport:socket(),
- File :: file:name_all() | file:fd(),
- Offset :: non_neg_integer(),
- Bytes :: non_neg_integer(),
- Opts :: ranch_transport:sendfile_opts())
- -> {ok, SentBytes :: non_neg_integer()} | {error, atom()}
- ----
- Send a file on the socket.
- The file may be sent full or in parts, and may be specified
- by its filename or by an already open file descriptor.
- This function emulates the function `file:sendfile/2,4,5`
- and may be used when transports are not manipulating TCP
- directly.
- == Arguments
- Transport::
- The transport module.
- Socket::
- The socket.
- File::
- The filename or file descriptor for the file to be sent.
- Offset::
- Start position in the file, in bytes.
- Bytes::
- Length in bytes.
- Opts::
- Additional options.
- == Return value
- The number of bytes actually sent is returned on success
- inside an `ok` tuple.
- An `error` tuple is returned otherwise.
- == Changelog
- * *1.6*: The type of the `File` argument was extended.
- == Examples
- .Implement Transport:sendfile using the fallback
- [source,erlang]
- ----
- sendfile(Socket, Filename) ->
- sendfile(Socket, Filename, 0, 0, []).
- sendfile(Socket, File, Offset, Bytes) ->
- sendfile(Socket, File, Offset, Bytes, []).
- sendfile(Socket, File, Offset, Bytes, Opts) ->
- ranch_transport:sendfile(?MODULE, Socket,
- File, Offset, Bytes, Opts).
- ----
- == See also
- link:man:ranch_transport(3)[ranch_transport(3)]
|