先来看一下C语言的printf()函数的实现源码,实际上是调用的vprintf方法,而vprintf方法又调用了vfprintf方法,这个方法是将字符串输出到标准输出流stdout里面,与它关联的是一个FILE对象,这个FILE对象的文件描述符是非负整数。

C语言printf“()”真的会将输出发送到屏幕吗?

C语言printf“()”真的会将输出发送到屏幕吗

先来看一下C语言的printf()函数的实现源码,实际上是调用的vprintf方法,而vprintf方法又调用了vfprintf方法,这个方法是将字符串输出到标准输出流stdout里面,与它关联的是一个FILE对象,这个FILE对象的文件描述符是非负整数。对于标准输出stdout来说这个整数是1,如果是错误输出stderr那就是2,标准输入stdin为0。

默认情况下文件描述符0、1、2是和终端关联的,所以我们可以看到屏幕上的结果。可见,printf()并不是将结果直接发送到屏幕上的,它是通过将内容输入到一个不可见的文件中,这个文件描述符关联终端进行显示结果的。如果我们不希望将结果输出到终端,那么需要进行重定向,即使用


文章TAG:printf  单片机  调用  单片机中使用printf  printf  调用    哪些  
下一篇