#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 但是,接下来的价值观我不会。
请帮我理解这个
答案 0 :(得分:5)
程序完全按照您的指示执行操作:从文件中一次读取四个字节,并在每行上打印出这些四字节块。
答案 1 :(得分:1)
C语言中没有名为read()
的函数。
此功能是某些特定操作系统(如Unix和MS DOS)使用的常见非标准扩展。他们以编译器和系统特定的方式实现它。
稍后,该功能通过该功能的POSIX version标准化。您的代码似乎使用该版本。