itop-4412开发板使用第一篇-信号量的学习使用
学习 开发板 信号量 第一篇 使用
2023-09-14 08:57:21 时间
1. 本次基于itop-4412研究下Linux信号量的使用方法。
2. 创建信号量的函数,信号量的头文件在那个路径?编译应用程序的话,头文件有3个路径,内核源码头文件,交叉编译器头文件,ubuntu的头文件,不是很理解为啥交叉编译器也需要头文件,全用内核源码不行吗?书上说内核信号量和用户空间信号量(也叫IPC信号量)有区别的,前者用于内核同步,后者用于用户进程间同步。下面的函数是创建或者寻找信号量,在IPC信号量是一组的,内核信号量是一个的。
sem_id = semget((key_t)1234, 1, 0666 | IPC_CREAT);
3. 找到semget的函数原型。先找到了头文件\iTop4412_Kernel_3.0_20140521\iTop4412_Kernel_3.0\include\linux\sem.h,再找到C文件\iTop4412_Kernel_3.0_20140521\iTop4412_Kernel_3.0\kernel\semaphore.c,不过奇怪的地方在于本次的例程用到的头文件是,不是linux下的目录,我猜应该是交叉编译器的路径。
#include <sys/sem.h>
4. 进入\iTop4412_Kernel_3.0_20140521\iTop4412_Kernel_3.0\kernel\semaphore.c,发现里面的函数是,难道就是上面说的内核信号量的函数,和IPC信号量名称也不一样,翻翻书看下,果然看了一下,linux提供两种信号量,内核信号量,由内核控制路径使用,System V IPC信号量,由用户态进程使用。下面的就是内核部分的信号量。
相关文章
- itop-4412开发板学习-进程间通信共享内存
- LARK BOARD开发板试用第一篇-上电测试学习
- Hbase 学习(六) 配置文件调优
- RocketMQ学习(三):rocketmq-namesrv介绍
- 【STM32F407开发板用户手册】第12章 STM32F407的HAL库框架设计学习
- NLP之ASR:基于python和机器学习算法带你玩转的语音实时识别技术
- Java学习路线-20:正则表达式
- JavaScript学习总结-技巧、有用函数、简洁方法、编程细节
- CC2540开发板学习笔记(九)—— BLE协议简介
- CC2540开发板学习笔记(二)——按键
- 学习目录-自己动手写CPU
- TensorFlow 从入门到精通(15)—— 迁移学习和猫狗大战(上)更新ing
- 强化学习知乎资料