【发布时间】:2020-10-31 22:58:37
【问题描述】:
我正在编写一些损坏文件的软件。它将文件存储在缓冲区中,通过使用随机掩码异或来破坏该缓冲区,然后将修改后的缓冲区写入标准输出,以便(linux)用户可以将其通过管道传输到某个地方。
我已经以二进制模式打开了标准输出:
FILE *const out = fdopen(dup(fileno(stdout)), "wb");
但是我实际上如何一次将整个缓冲区写入out?
看来我有两个选择:
- 迭代所有字节并执行
fputc - 希望数据中没有空字节,做
fputs
我正在寻找fputb,它需要:
- 指向要写入的数据的指针
- 要写入的文件描述符
- 要写入的字节数
(比fputc-loop 具有更好的性能)
【问题讨论】:
-
每天花时间阅读标准库函数的描述。这样做一个星期左右。在那之后,您至少会记住它们的存在(甚至可能是它们的名字)。另外:在 Unix 手册页中,有一个“另见”部分,具有相关功能。
标签: c