Tho*_*mas 32
系统调用是对内核代码的调用,通常通过执行中断来执行.中断导致内核接管并执行请求的操作,然后将控制权交还给应用程序.此模式切换是系统调用执行速度比等效应用程序级函数慢的原因.
fopen是C库中的一个函数,它在内部执行一个或多个系统调用.通常,作为C程序员,您很少需要使用系统调用,因为C库会为您包装它们.
实际上,系统调用与函数调用无关.这两种机制中唯一常见的是它们都为呼叫者提供服务.
从线程执行的角度来看系统调用:
系统调用是应用程序模式程序的功能,用于请求由下划线OS提供的服务.系统调用将运行线程从用户模式带入内核模式,执行系统调用处理函数,然后返回用户模式.
系统调用参数:
系统调用的参数是(系统调用号,参数...).params的含义和格式取决于系统调用号.
从提供给用户程序的syscall库的视图:
用户模式程序通常调用glibc的库来调用系统调用.例如,glibc中的open()函数: