socket的这个函数write(fd, (text + written), len - written)怎么理解

强者最帅 2016-03-10 06:51:20
write_to_socket(int fd, char *text, size_t len)
{
ssize_t retval;
size_t written;

written = 0;
while (written < len)
{
retval = write(fd, (text + written), len - written);
if (retval == -1)
{
debug(LOG_CRIT, "Failed to write client data to child: %s", strerror(errno));
return 0;
}
else
{
written += retval;
}
}
return 1;
}
...全文
549 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ooolinux 2016-03-15
  • 打赏
  • 举报
回复
text是char *字符串指针,text + written等于指针偏移written个字符,相当于&text[written]。 len - written 传输剩下的这么长的字符串。
  • 打赏
  • 举报
回复
不一定一次性能够将len长度的数据write去 所以每次write过后得到write成功的长度,判断是否完成 未完成则跳过之前成功的数据,将剩余的继续write。

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧