繁体   English   中英

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

[英]Printing contents of file to stdout low-level I/O in C

如何仅使用低级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");
}

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM