哪个更好,ch='\n';;写入(1和ch,1);或者putchar(';\n';);?

哪个更好,ch='\n';;写入(1和ch,1);或者putchar(';\n';);?,c,operating-system,out-of-memory,system-calls,standard-library,C,Operating System,Out Of Memory,System Calls,Standard Library,我遇到了系统调用“write”,然后,我尝试比较“putchar”和“write”。现在,我对上面的代码行感到困惑。putchar是一个库函数。它调用write系统调用以在stdout中写入字符 如果我们多次访问系统调用,系统性能会变慢 因此,只需实现库函数 库函数用于写入,它分配一个缓冲区,一旦缓冲区已满或已刷新,则只调用write系统调用将内容写入stdout 因此,如果想要获得良好的系统性能,就必须使用库函数(putchar) 如果需要立即写入输出,可以使用写入系统调用 您是否查看了wri

我遇到了系统调用“write”,然后,我尝试比较“putchar”和“write”。现在,我对上面的代码行感到困惑。

putchar是一个库函数。它调用write系统调用以在stdout中写入字符

如果我们多次访问系统调用,系统性能会变慢

因此,只需实现库函数

库函数用于写入,它分配一个缓冲区,一旦缓冲区已满或已刷新,则只调用write系统调用将内容写入stdout

因此,如果想要获得良好的系统性能,就必须使用库函数(putchar)


如果需要立即写入输出,可以使用写入系统调用

您是否查看了
write
putchar
的手册页?你觉得困惑的是什么?我看过手册,我知道write是系统调用,putchar是库函数。我混淆了两者之间的优劣,即效率和内存使用情况。i、 e.“putchar”的内部架构是什么?我问了您发现什么让您感到困惑,但您没有说。很抱歉,具体来说,putchar必须使用写入系统调用,那么该系统调用与上述实现有何不同?可能会有一些改进:
write
也是,通常通过包装
write
系统调用来实现,但可能不是
putchar
可能直接调用
write
系统调用,也可能不直接调用-它可能调用
write
函数,或者完全调用其他函数。如果您想获得良好的系统性能,可能必须使用库函数。那太笼统了。如果需要立即写入输出,可以使用写入系统调用或使用
STDIO
stderr
-
fputc