面试真题

C++ · 中等 · 字节跳动

printf是怎么实现的

中等 C++ 🎤 字节跳动
参考答案
结论:printf是C标准库函数,解析格式串与可变参数,格式化后通过系统调用write输出。原理:1. 用va_list取可变参数,按%d/%s从栈或寄存器取参;2. 转字符串写入用户态stdout缓冲区(行缓冲);3. 遇换行、缓冲满或fflush时调用write(fd=1,buf,len)陷入内核;4. 内核终端驱动显示。对比:fprintf指定流,sprintf到数组;printf内调vfprintf。示例:printf('%d',5)取参格式化'5'后write。
题目整理自公开面经,答案由校招宝自研生成,仅供参考