[英]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.