我有一个包含文本abcdefgh
意外的值读取
这个代码转换文件描述符(int fd
)文件指针(FILE*
)的文件y.txt
,并试图从中读取数据。
#include <stdio.h>
#include<fcntl.h>
int main()
{
FILE *fp;
int fd = open("y.txt",O_RDONLY);
printf("%d",fd);
fp=fdopen(fd,"r");
close(fd);
char a[5];
a[4]='\0';
fread(a,2,1,fp);
printf("%s",a);
return 0;
}
该程序输出p
代替ab
,因为它应该,如果它是从y.txt
开始时读取。
我在做什么错?
请阅读简单[问]页面。 –
好吧我知道它是一个坏的,我真的很抱歉,但请清楚,为什么当我将fd转换为文件指针时,为什么它没有给我正确的答案。它给了我p但y.txt包含:abcdefg –
也许尝试['fopen'](https://linux.die.net/man/3/fopen)而不是'open' /'fdopen' – yano