<分区>
我很好奇 printf
在 Linux 内部是如何工作的。我不明白它如何将数据写入 STDOUT
。
经过一些内部搜索,我下载了 glibc
并查看了源代码:
__printf (const char *format, ...)
{
va_list arg;
int done;
va_start (arg, format);
done = vfprintf (stdout, format, arg);
va_end (arg);
return done;
}
找到这个之后,我深入研究了 vfprintf
函数——但该文件大约有 2500 行陌生的 C 代码。我正在从 10,000 英尺的高度寻找 printf 如何与计算机的内存和输出一起工作以在屏幕上显示字符的解释。
如果我是一段汇编代码,我需要做什么才能完成同样的任务?它是否依赖于操作系统?