一、嵌入式Linux系统开发
1、嵌入式三大组成部分:软件、内核和硬件
2、C语言程序设计:没有操作系统(无os),侧重C语言语法
3、系统开发:通过内核提供的服务实现相应功能
4、嵌入式Linux C开发:通过C语言来访问内核
5、
(1)Linux系统空间划分:用户空间、内核空间
(2)划分空间的目的:保护内核空间不能被用户空间随便访问
(3)用户空间访问内核空间:必须发生系统调用
(4)发生系统调用:调用操作系统提供的函数接口——API
6、学习嵌入式Linux系统开发实际上学习的是用户编程接口API!
7、学习Linux C:文件操作、进程、线程操作(多任务)、网络、设备
(1)单任务实例:
总结6
总结6
(2)多任务实例:
总结6
总结6
二、嵌入式Linux C开发-I/O技术
1、文件描述符:即文件id
(1)动态分配:只有操作该文件时,系统才会分配系统描述符
(2)非负整数:从3编号开始(0、1、2三个文件描述符有其他作用)
2、无缓冲访问文件(系统调用)
(1)creat函数:(若文件本身已存在,则不会被创建)
定义:int creat(const char *pathname, mode_t mode);
//函数名、形参、返回值
例1:
总结6
总结6
例2:
总结6
总结6
例3:
总结6
总结6
例4:(目录已存在,创建则失败)
//errno:系统全局变量 保存系统调用的错误值
总结6
总结6
总结6
例5:
总结6
总结6
例6:
//perror:自动换行,打印系统的错误信息
总结6
总结6
(2)open函数:
定义:
1)int open(const char *pathname, int flags);
2)int open(const char *pathname, int flags, mode_t mode);
例1:
总结6
总结6
例2:
总结6
总结6
(3)write函数:
定义:ssize_t write(int fd, const void *buf, size_t count);
例1:(重复运行,上次结果会被覆盖)
总结6
总结6
总结6
例2:
//O_APPEND:每次打开文件,读写位置移到末尾
总结6
总结6
总结6
例3:
总结6
总结6
(4)read函数:
定义:ssize_t read(int fd,void *buf,size_t count);
例1:(O_APPEND:每次打开文件,读写位置移到末尾,因此未能读到内容)
总结6
总结6
总结6
例2:(删除O_APPEND:每次打开文件,读写位置在最前面,同样未能读到内容)
总结6
总结6
总结6
(5)lseek函数:(用来控制该文件读写位置)
定义:off_t lseek(int fildes,off_t offset,int whence);
1)SEEK_SET:参数offset即为新的读写位置。
2)SEEK_OUR:以目前的读写位置往后增加offset个位移量。
3)SEEK_END:将读写位置指向文件尾后再增加offset个位移量。
例1:
总结6
总结6
例2:(从文件末尾开始读取,未能读到内容)
总结6
例3:
总结6
总结6
例4:
总结6
总结6
例5:
//int size = lseek(fd,0,SEEK_END):测量文件的大小
总结6
总结6
总结6
(6)close函数:
定义:int close(int fd);
例:
总结6
(7)其他实例应用:
1)写三行数据
例:
总结6
总结6
2)写三行不同的数据
例:
总结6总结6
3)写进三行数据,分别读出三行数据
例:
总结6
总结6
4)从一个文件拷贝到另一个文件
例:
总结6
总结6
总结6
总结6
总结6
总结6
总结6

相关文章:

  • 2021-12-05
  • 2021-12-25
  • 2021-06-12
  • 2021-11-12
  • 2021-06-22
  • 2021-08-03
  • 2021-07-01
  • 2022-12-23
猜你喜欢
  • 2022-01-23
  • 2021-08-03
  • 2021-11-03
  • 2021-08-30
  • 2021-11-21
  • 2022-02-03
相关资源
相似解决方案