我有一個包含文本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