将文件的内容打印到标准输出中的低级别I/O
问题描述:
如何打印仅附加到低级别I/O功能的文件的内容?将文件的内容打印到标准输出中的低级别I/O
我得到的是在打印,我使用追加 示例文本最接近:我想FILE2.TXT
file1.txt = dog
file2.txt = cat
,也就是现在的“猫狗”被打印出来。我会怎么做?
如前所述,我只能得到“狗”打印。我也成功添加了该文件。我知道这可能是一个非常简单的解决方案,但我一直在摸索着几个小时。
我的代码
while (1) {
if ((bufchar = read(fdin1, buf, sizeof(buf))) > 0) {
bp = buf; // Pointer to next byte to write.
while (bufchar > 0) {
if ((wrchar = write(fdin2, bp, bufchar)) < 0)
perror("Write failed");
bufchar -= wrchar; // Update.
bp += wrchar;
}
}
else if (bufchar == 0) { // EOF reached.
break;
}
else
perror("Read failed");
}
答
只是一些抬起头,如果你是附加到FILE2.TXT它会接着是“猫狗”,而不是相反。如果您只能让狗写出来,请实际进入文件以确保您实际上正在追加,而不是简单地覆盖该文件。
下面是一些关于低级文件I/O的细节的阅读。阅读用于打开和关闭文件和原始I/O操作的前两个链接。没有看到你的任何代码,它很难帮助你,虽然它可能没有正确关闭文件,所以你的附加行不会被保存...
在目前的形式,很难说这个问题是什么关于。究竟是什么问题? – owacoder
我想你最好忘记术语低级I/O。并发布简单的高级代码,并要求将其转换为低级别。这样我们可以得到你想要的东西。 – milevyo
对不起,我发布了我的代码。基本上我想追加file2并将整个文件打印在控制台上 – user3038871