首先要说明的是重定向的原理发生在链接层,而不是语法层,因为printf是函数,然后printf调用了fputc,所以只需要重写fputc就可以,当然你要整个重写printf也没什么不可以。printf中调用了fputc,所以我们可以重写fputc,让我们的fputc被调用,不同的库里可以有相同函数的实现,谁先被链接进去,就用谁的。
printf重定向原理
最新推荐文章于 2024-05-14 14:51:52 发布
首先要说明的是重定向的原理发生在链接层,而不是语法层,因为printf是函数,然后printf调用了fputc,所以只需要重写fputc就可以,当然你要整个重写printf也没什么不可以。printf中调用了fputc,所以我们可以重写fputc,让我们的fputc被调用,不同的库里可以有相同函数的实现,谁先被链接进去,就用谁的。