C 如何在不使用std lib函数的情况下打印某些内容?

C 如何在不使用std lib函数的情况下打印某些内容?,c,C,在C语言中,在屏幕上打印东西时,我们通常使用printf,put等。这些都是在或其他标题文档中定义的 有没有办法不使用这些功能就在屏幕上打印东西?也就是说,printf是如何实现的?最终,C函数printf将直接或通过write(请参见man 2 write)产生sys write系统调用。实际实现取决于编译器和标准库。库ncurses可以帮助您,但如果您想使用低级函数,请使用write(),如果您想进行内核编程,则必须使用printk()打印到屏幕需要访问帧缓冲区(硬件)用户空间程序不允许直接

在C语言中,在屏幕上打印东西时,我们通常使用
printf
put
等。这些都是在或其他标题文档中定义的


有没有办法不使用这些功能就在屏幕上打印东西?也就是说,
printf
是如何实现的?

最终,C函数
printf
将直接或通过
write
(请参见
man 2 write
)产生
sys write
系统调用。实际实现取决于编译器和标准库。

库ncurses
可以帮助您,但如果您想使用低级函数,请使用
write()
,如果您想进行内核编程,则必须使用
printk()
打印到屏幕需要访问帧缓冲区(硬件)用户空间程序不允许直接访问它。所以他们所做的就是进行系统调用,内核为他们执行所需的功能
printf
->
write
system call->kernel将数据写入帧缓冲区,然后将控制权返回给用户程序。
即使您不想使用
printf
put
(它们在托管的libc中实现),您仍然必须使用write系统调用告诉内核要在哪个设备上写入缓冲区。

标准头不一定是包含用C代码编写的函数的库。
它们是带有C“interbase”的函数,但是很可能它们包含明确的机器代码,在每种情况下都适用于目标系统。
通过这种方式,标准头提供了执行在严格的C代码中无法实现的特殊过程的方法


printf()
的特定情况下,情况更为清楚,因为如果没有标题是
#include-d
,那么就没有任何仅通过使用C语法执行输入/输出操作的机制

我更新了我的答案。很抱歉回答错了。这个问题与
bash
无关,只是
bash
正在用C实现。我回滚了您所做的编辑(添加bash标记)。如果您的答案不适用,我们可以很容易地否决它,但查找和纠正您不适当的编辑要付出更多的努力,因此请在编辑时更加小心和保守。