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 如何与计算机内存一起工作并输出以在屏幕上显示字符的解释。
如果我是一段汇编代码,我必须做什么来完成同样的任务?它依赖于操作系统吗?