在C中将文件内容打印到stdout低级I / O.

时间:2015-10-22 02:33:00

标签: c stdout low-level low-level-io

如何仅使用低级I / O功能打印我附加到的文件的内容?

我得到的最接近的是打印我正在追加的文字 例如:

file1.txt = dog
file2.txt = cat

我想要file2.txt,现在打印出“catdog”。我该怎么做?

如前所述,我只能打印“狗”。我也成功地附加了文件。我知道这可能是非常简单的解决方案,但我已经摸不着头几个小时了。

我的代码

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");
}

1 个答案:

答案 0 :(得分:0)

只是有些人抬头,如果你要附加到file2.txt那么它就会成为&#34; catdog&#34;而不是相反。如果你只能让狗写出来,请亲自进入文件以确保你实际上是附加而不是简单地覆盖文件。

以下是对低级文件I / O细节的一些解读。阅读用于打开和关闭文件以及原始I / O操作的前两个链接。在没有看到任何代码的情况下,很难帮助您,尽管您可能没有正确关闭文件,因此您的附加行未保存...