系统调用与库函数
管理员用户的ID是0
printf函数 最后调用的还是write
write(1,"hello",5)//0(标准输入) 1(标准输出) 2(标准错误输出) 5个字符
write是一个系统调用,printf是调用库函数
系统调用先中端,现场保护,根据系统调用号由操作系统来执行,进入内核,现场恢复。(write,fork,open,)
系统调用都是一些用户无法完成的,需要进入内核。库函数都是我们能实现的。
硬件>内核>系统调用>库
一个新进程都要先fork后exec
#include<stdio.h>
#include<stdlib.h>
#incldue<unistd.h>
#include<string.h>
#include<assert.h>
int main()
{
printf("A");
write(1,"B",1);
fork();
exit(0);
}//打印出来的值为BAA 因为printf先打到缓冲区,而write直接打到屏幕