swoole_async_write

异步写文件,与swoole_async_writefile不同,swoole_async_write是分段写的。不需要一次性将要写的内容放到内存里,所以只占用少量内存。swoole_async_write通过传入的offset参数来确定写入的位置。

bool swoole_async_write(string $filename, string $content, int $offset = -1, mixed $callback = NULL);
  • 当offset为-1时表示追加写入到文件的末尾
  • Linux原生异步IO不支持追加模式,并且$content的长度和$offset必须为512的整数倍。如果传入错误的字符串长度或者$offset写入会失败,并且错误码为EINVAL
  • callback函数返回false才会close文件, 否则fd将会在下一次write时被复用


  • 张慧宗

    请问,提示这个错误应该怎么去解决? Warning: swoole_async_write(): open file failed. Error: Permission denied[13] in

  • Rango-韩天峰

    这个错误表示没有文件写入权限。

  • 潘田博客

    修改目录权限为可写

  • 陈浩波

    按官网例子运行后,出现Segmentation fault (core dumped)错误,程序直接中断返回shell。应该是源代码内存调用错误。希望尽快处理。

  • [大天使长]

    运行环境:centos 6.5,swoole-1.7.9-stable,php程序只有两行,第一行写入,第二行打印一个字符串。

  • 黄玉衡

    [30-Mar-2016 19:42:33 PRC] PHP Warning: swoole_server::start(): swoole_async: onAsyncComplete callback not found[1] 遇到了这个问题

  • 要朋涛

    PHP Fatal error: swoole_async_write(): cannot use async-io in task process

  • 超人不会飞

    $offset 和回调函数的位置调换了吗?按照手册上的位置报错

  • crosechan

    Segmentation fault (core dumped) 为什么异步链接数据库会报错啊