[英]C low-level standard-in to accept filename then printing file contents to stdout
[英]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.