什么是c语言的read()

时间:2014-06-25 12:51:36

标签: c

#include <stdio.h>
#include <string.h>       
#include <fcntl.h>         
#include <unistd.h>        

#define  BUFF_SIZE   5     

int main()
{
   char     buff[BUFF_SIZE];
   int      fd;
   ssize_t  rd_size;

   if ( 0 < ( fd = open( "./test.txt", O_RDONLY)))
   {
      while( 0 < ( rd_size = read( fd, buff, BUFF_SIZE-1)))   
   {
       buff[rd_size]  = '\0';      
       puts( buff);
   }
   close( fd);
   }
   else
   {
      printf( "File Fail..\n");
   }
   return 0;
   }

   as a result..


     1234
     5
     AB
     CDE

     abcd
     e
     67
     890

这里是test.txt。

12345
ABCDE
abcde
67890

我无法理解为什么这个程序的结果。 对不起我不太懂英语。

我知道价值,1234 但是,接下来的价值观我不会。

请帮我理解这个

2 个答案:

答案 0 :(得分:5)

程序完全按照您的指示执行操作:从文件中一次读取四个字节,并在每行上打印出这些四字节块。

答案 1 :(得分:1)

C语言中没有名为read()的函数。

此功能是某些特定操作系统(如Unix和MS DOS)使用的常见非标准扩展。他们以编译器和系统特定的方式实现它。

稍后,该功能通过该功能的POSIX version标准化。您的代码似乎使用该版本。