linux中write函数返回值 您所在的位置:网站首页 write返回值 linux中write函数返回值

linux中write函数返回值

2022-05-17 21:21| 来源: 网络整理| 查看: 265

原文出处:http://blog.chinaunix.net/space.php?uid=20558494&do=blog&id=2803003

read函数是Linux下不带缓存的文件I/O操作函数之一,所谓的不带缓存是指一个函数只调用系统中的一个函数。另外还有open、write、lseek、close,它们虽然不是ANSI

C的组成部分,但是POSIX的组成部分。

在对read的使用过程中,发现对其返回值的处理比较重要,这里做一下总结。

read函数原型:

ssize_t read(int fd,void *buf,size_t count)

函数返回值分为下面几种情况:

1、如果读取成功,则返回实际读到的字节数。这里又有两种情况:一是如果在读完count要求字节之前已经到达文件的末尾,那么实际返回的字节数将

小于count值,但是仍然大于0;二是在读完count要求字节之前,仍然没有到达文件的末尾,这是实际返回的字节数等于要求的count值。

2、如果读取时已经到达文件的末尾,则返回0。

3、如果出错,则返回-1。

这样也就是说分为>0

perror("open:");

exit(1);

}

else

printf("Open file:hello.c %d\n",fd);

//write

if((size=write(fd,buf,len))

lseek(fd,0,SEEK_SET);

for(j=0;j

buf_r[j]=0; if((size=read(fd,buf_r,MAXSIZE-i))

buf_r[MAXSIZE-i]='\0';

printf("string-len=%d,count=%d,size=%d\n",len,MAXSIZE-i,size);

printf("read from file:%s \n",buf_r);

}

} printf("\n\nNow test stops...\n");

//close

if(close(fd)



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有