1、文件IO
1.1系统调用
概念:内核提供给用户可以操作内核的一组函数接口。
用户借助系统调用操作内核。
进程的空间分为:内核空间和用户空间
1.2系统调用和库函数有啥区别
系统调用是内核提供的一组函数接口。
库函数是第三方的函数接口。
库函数没有调用系统调用,该库函数不能操作内核。比如:字符串操作函数strcpy,bzero
库函数调用系统调用,该库函数才能操作内核。比如:fopen fclose fwrite fgets
2、文件描述符[重要]
Linux将系统调用打开或新建的文件用非负整数来表示。而这个非负整数就是文件描述符。
系统会为每一个进程分配文件描述符表,管理该进程的所有文件描述符。
系统会为每一个进程打开3个文件描述符:0、1、2
0:标准输入设备(键盘) scanf
1:标准输出设备(终端)printf
2:标准错误输出(终端)perror
文件描述符是通过“位图”来管理文件描述符。使用1024位二进制位管理,位数代表的就是文件描述符,位上的值1表示打开&#