嵌入式学习笔记:第二周

本文是关于嵌入式学习的笔记,重点探讨了嵌入式网络编程,包括Linux系统下的文件编程和IO操作,强调了系统调用、文件描述符的重要性和学习方法。同时,也简要介绍了C语言中`register`关键字的用法和C++中的引用概念。
摘要由CSDN通过智能技术生成

嵌入式网络编程-文件编程

1.嵌入式网络编程==嵌入式Linux C系统编程(文件、进程、进程间通信、多线程、网络、大并发网络服务器、数据库、shell编程)
2.嵌入式C开发VS嵌入式LinuxC:使用Linux操作系统提供的功能(文件…)(多任务、网络聊天室)(嵌入式Linux应用软件开发)
3.Linux操作系统的组成:用户空间、内核空间
4.为什么将Linux操作系统划分为用户空间和内核空间?保护内核不被用户轻易访问;
5.用户空间如何访问内核空间?系统调用、硬件中断、软件中断
6.什么是系统调用?用户通过调用操作系统提供的函数(发生系统调用)来访问内核的数据或者湖区服务;(注:API:用户编程接口 ==操作系统提供的可调用函数 )
7.用户如何发生系统调用?调用系统提供的API
8.如何学习嵌入式网络编程?写(代码)测试(写demo测试API接口的功能)项目(知识点整合)

嵌入式Linux IO编程
1.什么是IO编程:文件编程(IO==文件):Linux一切皆为文件,(硬件设备也被抽象位文件)
2.为什么Linux选择将所有资源抽象文件?文件的管理方式简单;(打开、关闭、读写)
3.什么是文件描述符?特点?文件描述符实际上就是文件ID,特点是动态的,只有当你操作这个文件时,系统才会给它分配id;
4.文件描述符的类型?unsigned int—》热点:文件描述符是有范围
5.特殊的文件描述符:0:标准输入1:标准输出 2标准出错处理(cin、cout、cerr、clog)
注:用户创建的文件,它的文件描述符是从3开始的!!!(0,1,2已经被占用)
6.fopen\fclose\fread\fwrite\fseek:这些函数都是库函数,库函数是可以跨平台使用,(Linux、win32使用是一样)
7.API:create、open、read、write、close、lseek、icotl、mmap:这些函数都是Linux系统提供的,只能在Linux操作系统下使用;

注:学习方法:函数原型(函数名、函数形参的作用、函数返回值)、写测试、写案例
全局变量:errno/perror打印系统调用的错误信息


C to C++2

register:
(1)register 关键字无法在全局中定义变量,否则会被提示为寄存器无效。其实这一点在新的gcc编译器下C语言也不允许定义全局的register变量,因为生命周期直到程序结束,期间都作为寄存器变量的话明显不妥。
(2)register 关键字在局部作用域中声明时,可以用 & 操作符取地址,一旦使用了取地址操作符,被定义的变量会强制存放在内存中。
引用
在C++中新增加了引用的概念
引用可以看作一个已定义变量的别名
引用的语法:Type& name = var;
引用做函数参数?(引用作为函数参数声明时不进行初始化)
(普通引用在声明时必须用其它的变量进行初始化)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值