LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 883|回复: 2

关于网上看到一个经典的拷贝文件的代码的问题

[复制链接]
发表于 2006-2-23 19:59:51 | 显示全部楼层 |阅读模式
我是新手,请各位指教。最近在网上看到一个经典的拷贝文件的代码

while(bytes_read=read(from_fd,buffer,BUFFER_SIZE))
{
  if((bytes_read==-1)&&(errno!=EINTR)) break;
  else if(bytes_read>0)
  {
    ptr=buffer;
    while(bytes_write=write(to_fd,ptr,bytes_read))
    {
      if((bytes_write==-1)&&(errno!=EINTR))break;
      else if(bytes_write==bytes_read) break;
      /* 只写了一部分,继续写 */
      else if(bytes_write>0)
     {
        ptr+=bytes_write;
        bytes_read-=bytes_write;
      }
     }
     /* 写的时候发生的致命错误 */
     if(bytes_write==-1)break;
  }
}  
请问各位什么情况下会出现"只写了一部分,继续写"这种情况?
发表于 2006-2-23 23:44:23 | 显示全部楼层
磁盘满或者写入出错的时候就会出现bytes_write比bytes_read小的情况。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-24 12:49:11 | 显示全部楼层
谢谢前辈^_^
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表