linux_C网络编程概述
嵌入式网络编程==嵌入式Linux_C系统编程
(文件、进程、进程间通信、多线程、网络、大并发网络服务器、数据库、shell编程)
1、嵌入式C开发 VS 嵌入式Linux_C:使用Linux操作系统提供的功能
2、Linux操作系统的组成:用户和内核空间
——为何将Linux操作系统划分为用户和内核?
保护内核不轻易被用户访问。
——用户如何访问内核空间?
系统调用、硬件中断、软件中断
3、什么是系统调用?
用户通过调用操作系统提供的函数来访问内核的数据或者获取服务。
——API:用户编程接口==操作系统提供的可调用函数
4、用户如何发生系统调用?
——调用系统提供的API
5、如何学习嵌入式网络编程?
——写代码(记函数原型,函数名、函数形参、函函数返回值)
——测试demo(API接口的功能,测试函数形参和返回值作用)
—— 写案例
一、嵌入式Linux IO编程
1、什么是IO编程?
——文件编程IO==文件,Linux一切皆为文件;硬件设备也被抽象为文件
2、Linux为什么将所有资源抽象为文件?
——文件的管理方式简单
3、什么是文件描述符?特点是什么?类型是什么?特殊的文件描述符?
——文件描述符是文件ID
——特点是:动态分配,只有当操作该文件时,系统才会给它分配一个文件ID,注意文件id有范围。
——文件描述符的类型是:unsigned int
——特殊的文件描述符:0(stdin标准输入)、1(stdout标准输出)、2(stderr标准出错)
注意:用户创建的文件,文件描述符从3开始
4、库函数:可以跨平台使用
——fopen、fwrite、fread、fclose、flseek等
5、API:Linux系统提供的函数,只能在Linux平台上使用
——creat、write、read、close、lseek、open、fcntl、ioctl、dup、dup2、mmap等
接下来,来看一下linux API关于文件的基本操作
在写函数demo时,可以通过man手册来查看函数原型,函数返回值等信息
举例说明:在终端输入命令 man 2 open
1、creat函数
2、open函数
3、write函数
4、read函数
在标准库函数中,文件操作的使用
1、fopen
2、fwrite
3、fread