进出口使用的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? –