您的位置:首页 > 其它

write and read

2013-05-31 11:51 375 查看
int my_write(int fd,void *buffer,int length)

{

int bytes_left;

int written_bytes;

char *ptr;

ptr=buffer;

bytes_left=length;

while(bytes_left>0)

{

        /* 开始写*/

        written_bytes=write(fd,ptr,bytes_left);

        if(written_bytes<=0) /* 出错了*/

        {       

                if(errno==EINTR) /* 中断错误 我们继续写*/

                        written_bytes=0;

                else             /* 其他错误 没有办法,只好撤退了*/

                        return(-1);

        }

        bytes_left-=written_bytes;

        ptr+=written_bytes;     /* 从剩下的地方继续写  */

}

return(0);

}
int my_read(int fd,void *buffer,int length)
{
int bytes_left;
int bytes_read;
char *ptr;
  
bytes_left=length;
while(bytes_left>0)
{
   bytes_read=read(fd,ptr,bytes_read);
   if(bytes_read<0)
   {
     if(errno==EINTR)
        bytes_read=0;
     else
        return(-1);
   }
   else if(bytes_read==0)
       break;
    bytes_left-=bytes_read;
    ptr+=bytes_read;
}
return(length-bytes_left);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: