[英]File systems in C in linux
我正在使用Linux在c语言中编写代码,并试图从文件中读取。 我已经运行了代码,它可以完美运行,但是我试图理解使用文件描述符和包含参数的缓冲区的逻辑。 请从行r = read(fd,buff,1);中获取帮助;
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
void main()
{
int fd,r;
char buff[100];
fd=open("test.dat",O_RDONLY);
if (fd==-1)
{
printf("Failed to open and read the file test.dat\n");
exit(1);
}
r=read(fd,buff,1);
while (r>0)
{
printf("%s",buff);
r=read(fd,buff,1);
}
close (fd);
}
基本上, read
返回读取的字节数。 在您的代码中,您每次读取1个字节并进行打印。 因此,当到达文件末尾时,它将停止( read
将返回0)。
您可以在一次read
读取更多字节。 在这种情况下, read
可以返回两个值(当然,如果read
成功):
read(fd, buff, 12)
字节数( read(fd, buff, 12)
将返回12)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.