嵌入式学习笔记:第四周
嵌入式Linux文件操作
1、Linux系统空间的组成:用户空间、内核空间(提供核心的服务和数据)
注:用户空间到内核空间是有开销的(时间、CPU、 内存)
2、系统调用:用户空间访问内核空间的方式; (注: 用户不能直接发起系统调用;系统调用的接口不能跨平台使用)
用户编程接口API:发生系统调用-访问内核空间的服务和数据
(注:访问内核空间的方式:系统调用、硬件中断、软件中断)
3、Linux-一点哲学: 一切皆为文件;文件的分类;文件描述符的作用!
4、读写文件(除去普通文件)发生阻塞; (读空文件会阻塞、 写满文件会阻塞) ;
(注:标准输入设备: STDIN_ FILENO, 标准输出设备: STDOUT_ FILENO,标准出错设备: STDERR _FILENO) ;
5、如何改变设备的阻塞状态? (open打开文件时, 选择O_ NONBLOCK选项;对已打开的文件,使用fcntI函数进行标志位设置)
fcntl (fd, F_ SETL, O_ NONBLOCK) ;
6、文件的重定向(改变文件的输出输入方向) : dup,dup2
7、文件的属性获取: stat, fstat (文件的大小)
8、文件的读取: - -般方法: read映射的方法: mmap (NULL,len, PORT_ READ | PORT_ WRITE, MAX_ SHARED,fd,0) ;
9.文件的普通操作: creat\open\read\write\close\Iseek
10.C库函数: fopen\fclose\fread\fwrite\fseek
fgets\fputs\fprinf\fscanf\ftell\feof
11.自学: ioctl