Server->sendfile
最后更新于:2022-04-02 06:20:17
# Server->sendfile
[TOC]
发送文件到`TCP`客户端连接。使用示例:
~~~
bool Server->sendfile(int $fd, string $filename, int $offset =0, int $length = 0);
~~~
* `sendfile`函数调用操作系统提供的`sendfile`系统调用,由操作系统直接读取文件并写入`socket`
* 因此`sendfile`只有`2`次内存拷贝,使用此函数可以降低发送大量文件时操作系统的`CPU`和内存占用
## 参数
* `$filename`要发送的文件路径,如果文件不存在会返回false
* `$offset`指定文件偏移量,可以从文件的某个位置起发送数据。默认为0,表示从文件头部开始发送
* `$length`指定发送的长度,默认为文件尺寸。
## 返回值
* 操作成功返回`true`,失败返回`false`
> 此函数与`Server->send`都是向客户端发送数据,不同的是`sendfile`的数据来自于指定的文件
> `sendfile`在低于`1.9.17`版本中不能用于`SSL`客户端连接
> `$length`和`$offset`在`1.9.11`版本后可用
';