
嵌入式Linux学习笔记:C语言与系统调用
下载需积分: 17 | 1.06MB |
更新于2024-07-14
| 124 浏览量 | 举报
收藏
"寒假嵌入式笔记记录了个人在学习嵌入式Linux系统中的关键知识点,包括C语言基础、进程与线程管理、网络编程以及内存管理等方面的内容。笔记特别强调了形参与实参的区别、内存泄漏问题的避免、字符串处理函数、结构体的内存对齐规则以及各种进程间通信机制的应用。"
详细内容如下:
1. C语言基础
- `System`函数用于执行Windows命令,例如`System("start 应用.exe")`可以启动指定的程序。
- 形参和实参的关系:形参在函数调用时分配内存,调用结束后被释放,因此在函数内部改变形参不会影响实参。
- 强制类型转换:不同数据类型间的运算需要使用强制类型转换,例如`(float)x/y`将整数除法转换为浮点数除法。
- `sizeof`运算符:计算数据类型或数组的大小,如`sizeof(arr)/sizeof(arr[0])`得到数组元素个数。
- 指针:`int(*p)[3]`定义了一个指向包含3个整数的数组的指针。
2. 内存管理
- 内存泄漏:程序不断申请内存但未及时释放,导致系统资源耗尽,可能导致电脑卡顿。避免内存泄漏的关键是确保正确释放不再使用的内存。
- `malloc`函数:动态分配内存,如`int *a = (int *)malloc(3 * sizeof(int))`分配3个整数大小的内存空间。
- `memset`函数:用于填充内存区域,将指定区域的值设为特定值。
3. 数据结构与算法
- 结构体:遵循内存对齐规则,成员的偏移量和结构体大小必须是成员大小的整数倍。
- 链表:由多个结构体通过指针相连,实现数据的动态链接。
4. 进程与线程
- `fork()`:创建一个子进程,使得父进程和子进程共享代码段,但拥有独立的数据段。
- `vfork()`:创建子进程,与`fork()`相似,但子进程使用父进程的地址空间,直到执行`exec`系列函数。
- `exec`系列函数:替换当前进程的执行映像,执行新的程序。
- `system`函数:以子进程的形式执行shell命令。
- `popen`函数:创建一个管道,并启动一个子进程,允许进程间通过管道通信。
- 管道(Pipes):半双工通信,适用于父子进程间通信。
- 有名管道(FIFO):以文件形式存在,可以被不相关进程读写,实现进程间通信。
- 消息队列:使用`msgget`创建,是一个消息链表,每个消息都是一个结构体,支持更复杂的通信模式。
5. 网络编程
- 未在文档中具体展开,但网络编程通常涉及套接字编程、TCP/IP协议栈、HTTP等概念,用于实现进程间的网络通信。
这个寒假嵌入式笔记涵盖了嵌入式开发中基础且重要的知识点,对于理解嵌入式Linux系统及其应用程序开发具有很大帮助。
相关推荐







宇川~
- 粉丝: 686
最新资源
- 一键部署的PHP在线商店系统教程
- MATLAB实现ER随机网络及其图形绘制
- Java分页组件封装完成,提高开发效率
- ASP.NET与SQL Server在线论坛课程设计报告
- WebClass技术基础教程全面解读
- 全面掌握Excel VBA:从入门到精通的范例解析
- 点对点传输软件实现高效文件共享
- 掌握Linux网络操作的必备命令指南
- AutoCAD ObjectARX实例教程:实现状态栏进度条和模式对话框
- 深入解析Struts源码及应用研究
- 深入解析基于ASP.NET AJAX的邮件系统开发
- PowerBuilder反编译工具正式发布
- MTK下载工具操作指南及资料介绍
- VC象棋小程序开发:源代码与功能解析
- 刘柏森主讲:通信原理课件精讲
- 全面解析项目实施方案及其成功要素
- 深入解析ObjectARX编程中的AcDbXrecord扩展使用
- PHP精简版FCKEDITOR在线编辑器功能介绍
- MySql5.0中文使用手册:快速掌握数据库操作
- Windows服务器Syslog功能使用指南
- VB编写数独游戏源码,矩阵与图片数字应用
- dopod P800简体中文版刷机教程
- 栈的应用:实现数学表达式求值程序
- Solarwinds自定义OID的详细教程