我已尝试过该网站的多个解决方案答案,但无法理解此代码出了什么问题。
我只是想读取文件data.txt并打印它。该文件只包含12个字符" abcd1234efgh"。
fd出现积极但是&#34; br&#34;执行读取时为0。如果有人知道这个,请帮忙#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/types.h>
int main(int args,char* vargs[])
{
int fd = 0;
fd = open("data.txt",O_RDONLY);
if(fd<=0)
printf("Invalid file name");
else{
off_t fs =lseek(fd, (off_t) 0, SEEK_END);
char buf[10];
off_t br = read(fd,buf,10);
printf("%s",buf);
}
return 0;
}
答案 0 :(得分:2)
lseek(fd,0,SEEK_END);
在文件末尾设置此文件指针后,任何进一步的读取都不成功。只需评论此说明,或根据您的需要进行更改。
答案 1 :(得分:1)
此:
lseek(fd, (off_t) 0, SEEK_END);
寻求文件的 end (偏离0)。当您随后尝试读取时,该点之后没有可用的字节。如果你想从文件的开头读取,你根本不需要寻找。