【发布时间】:2017-05-30 16:13:34
【问题描述】:
我正在编写一个简单的程序,该程序读取一个 1024 字节 x 1024 字节的文件(填充一个随机字母,重复随机数次)并将其发送到 FIFO 管道中。
首先,如果我的文件大小为 2007B,则第一次读取(fdFile,buffer_f,1024)正确读取例如 1020B,最后 4 次将是随机字符,如 ?qR?。
然后,在第二次读取时,返回的值应该是 983,但缓冲区包含的字符串与之前的大小完全相同,大小为 1024。
有人知道为什么吗?
当我从我的 FIFO 中读取数据时也会发生同样的事情,但最后会使用不同的随机子字符串。
while((buffer_f_size = read(fdFile, buffer_f, 1024)) > 0){
printf("Partida leida en el archivo arg : \n%s\nTamano de la partida : %d\n", buffer_f, buffer_f_size);
fflush(stdout);
if(write(fdprox, buffer_f, buffer_f_size) != buffer_f_size){
perror("Error en la lectura/escritura del archivo en el FIFO_proxy");
exit(-1);
}
}
【问题讨论】:
标签: c io system-calls