進出口使用的read()函數在C.閱讀()正在讀實際數據
有一個問題之前,閱讀垃圾數據我有一個文件可以說,文件X具有內容:
Data to be outputted
然而,當我打開該文件,並使用它看我用垃圾數據下面的代碼
ssize_t reader = 0;
ssize_t writer = 0;
char buffer[256];
reader = read(myFile, buffer, 256);
//check if reader is -1, if so then exit(1)
writer = write(1, buffer, 256);
//check if writer is -1, if so then exit(1)
讀取功能似乎運行兩次獲得。一旦有一堆垃圾數據,然後跟在文件中的實際數據。任何想法如何彌補這一點?
你應該只寫你所讀的。更改爲'writer = write(1,buffer,reader);' – zzn
您的代碼片段不是MCVE([MCVE]),並且無法提供您聲明的行爲。請提供實際工作的MCVE,以複製您所聲稱的內容。 (你在文件中的數據之後會產生各種垃圾 - 如果垃圾包含回車,它可能會部分覆蓋真正的數據。) –
爲什麼使用POSIX讀取,寫入?爲什麼不是標準的C fread和fwrite? –