将文件的内容打印到标准输出中的低级别I/O

将文件的内容打印到标准输出中的低级别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"); 
} 
+0

在目前的形式,很难说这个问题是什么关于。究竟是什么问题? – owacoder

+0

我想你最好忘记术语低级I/O。并发布简单的高级代码,并要求将其转换为低级别。这样我们可以得到你想要的东西。 – milevyo

+0

对不起,我发布了我的代码。基本上我想追加file2并将整个文件打印在控制台上 – user3038871

只是一些抬起头,如果你是附加到FILE2.TXT它会接着是“猫狗”,而不是相反。如果您只能让狗写出来,请实际进入文件以确保您实际上正在追加,而不是简单地覆盖该文件。

下面是一些关于低级文件I/O的细节的阅读。阅读用于打开和关闭文件和原始I/O操作的前两个链接。没有看到你的任何代码,它很难帮助你,虽然它可能没有正确关闭文件,所以你的附加行不会被保存...