C语言系统调用问题
最近看书说到,printf这些io有关的函数在底层的实现都是通过调用系统函数来实现的比如write() read(),我就是想知道一个C程序究竟是怎么调用系统函数的呢?想write()这些函数的defination是怎样的那?
[解决办法]
系统切换到内核态,调用位于内核空间的函数.
内核空间的函数被所有进程共用.
[解决办法]
printf是C语言的库函数,操作系统中或操作系统提供的开发工具都会集成各种语言的库。
操作系统一般可以分成:1 应用程序 和 应用层序开发工具组成最上层,一些开发工具中集成了C的库函数(如VS),有些系统包含C语言库。2 操作系统为应用层序提供应用程序调用接口,便于应用层序通过OS使用硬件资源。3 应用程序编程接口的实现,即提供者是OS运行库。4 运行库使用OS提供的系统调用接口,系统调用接口常以软件中断方式提供,运行库通过系统调用接口与OS内核通信。5 OS内核管理硬件,对于硬件来说是硬件接口的使用者;硬件的接口定义了操作系统内核,也就是驱动程序如何使用硬件。
你这个问题与操作系统有较深的关系,可以看看体系结构与操作系统方面的书籍。