Coroutine::fwrite
最后更新于:2022-04-02 06:26:10
# Coroutine::fwrite
[TOC]
协程方式向文件写入数据。
~~~
function Coroutine::fwrite(resource $handle, string $data, int $length = 0);
~~~
> 需要`2.0.11`或更高版本
## 参数
* `$handle`文件句柄,必须是`fopen`打开的文件类型`stream`资源
* `$data`要写入的数据内容,可以是文本或二进制数据
* `$length`写入的长度,默认为`0`,表示写入`$data`的全部内容,`$length`必须小于`$data`的长度
## 返回值
写入成功返回数据长度,失败返回`false`
## 版本差异
`4.0.4`以下版本`fwrite`方法不支持非文件类型的`stream`,如`STDOUT`、`Socket`,请勿使用`fwrite`操作此类资源。
`4.0.4`以上版本`fwrite`方法支持了非文件类型的`stream`资源,底层会自动根据`stream`类型选择使用`AIO`线程池或`EventLoop`实现。
## 示例
~~~
use Swoole\Coroutine as co;
$fp = fopen(__DIR__ . "/test.data", "a+");
co::create(function () use ($fp)
{
$r = co::fwrite($fp, "hello world\n", 5);
var_dump($r);
});
~~~
';