私房菜之 --学--无--止--境--

探索是一种乐趣,总结是一种习惯,坚持就是人生!

进程间通信——信号量

前言 通过前面几篇博文,大概清楚这些IPC 的设计都是为了进程间数据的共享而设计的,例如进程间通信——消息队列、进程间通信——共享内存、进程间通信——命名管道(FIFO),本文将要介绍的信号量(semaphore) 跟这些有些区别,更确切说它是为了共享数据的访问服务,它是一个计数器,是由狄克斯特...

2019-04-19 11:29:49

阅读数 85

评论数 0

进程间通信——共享内存

前言 共享内存可以说是最有用的进程间通信方式,也是最快的IPC 形式。两个不同的进程A、B共享内存的基本原理是,同一块物理内存映射到进程A、B各自的进程地址空间。进程A可以即时看到B对共享内存中数据的更新,反之亦然。 如图: 共享内存特点: 共享内存是最快的IPC形式,因为内存映射到共...

2019-04-18 22:44:30

阅读数 26

评论数 0

进程间通信——消息队列

前言 进程间通信——序 一文中说到 system V版本,AT&T引进了一种新形式的IPC 功能(信号量、消息队列以及共享内存)。 System IPC 中,对于每一个新建的信号量、消息队列以及共享内存,都有一个在整个系统中唯一的标识符。每个标识符都有唯一对应的关键字,关键字的...

2019-04-18 22:13:36

阅读数 24

评论数 0

进程间通信——命名管道(FIFO)

前言 命名管道也被称为FIFO(first in first out)文件,它是一种特殊类型的文件,它在文件系统中以文件名的形式存在,但是它的行为却和之前所讲的没有名字的管道(匿名管道)类似。 由于Linux中所有的事物都可被视为文件,所以对命名管道的使用也就变得与文件操作非常的统一,也使它的...

2019-04-18 17:26:01

阅读数 19

评论数 0

进程间通信——管道(PIPE)

前言 管道是UNIX系统IPC 的最古老形式,所有UNIX系统都提供此种通信机制。通常说的管道为匿名管道(pipe),下一篇讲述命名管道(fifo)。 管道有以下两种局限性: 历史上,它们是半双工的。现在,某些系统提供全双工管道,但是为了最佳的移植性,我们决不应预先假定系统支持全双工管道。 ...

2019-04-18 17:04:04

阅读数 16

评论数 0

进程间通信——序

进程间通信的目的 数据传输:一个进程需要将数据传输给另一个进程,发送的数据量在一个字节到几M字节之间。 共享数据:几个进程同时操作共享数据 信息传递:一个进程需要向另一个进程发送消息,通知发生某些事件 资源共享:多个进程共享同样的资源。为了这一点,需要内核提供锁和同步机制 进程控制:有些...

2019-04-18 15:42:49

阅读数 18

评论数 0

ftok 使用

ftok 是系统IPC键值的格式转换函数,系统建立IPC通讯(消息队列、信号量、共享内存)时必须指定一个ID值。通常情况下,该id值通过ftok函数得到。 头文件: #include <sys/types.h> #include <sys/ipc...

2019-04-17 16:33:43

阅读数 15

评论数 0

Android中 logd 详解

前言 logd 是Android L版本提出来的概念,其作用是保存Android运行期间的log(日志)。在Android L之前,log由kernel的ring buffer 保存,在Android L之后,log保存在用户空间。 代码基于版本:Android P 架构 lo...

2019-04-09 11:21:30

阅读数 49

评论数 0

syslogd详解

1. syslogd架构 App通过syslog的接口进行log的打印,该接口define在syslog.h中; syslog会通过socket发送消息,将log发送给syslogd; syslogd在获取到log后,会进行log的处理; syslogd可以将log保存到本地,也可以发...

2019-04-08 20:24:37

阅读数 271

评论数 0

__BEGIN_DECLS 和__END_DECLS

在底层代码和库的头文件中经常看到 __BEGIN_DECLS 和 __END_DECLS这两个宏,一直不太理解,今天特意查了一下,才知道它有这么大的用处。 首先看一下他们的宏定义: #if defined(__cplusplus) #define __BEGIN_DECLS ext...

2019-03-19 14:23:39

阅读数 41

评论数 0

C语言的静态库与共享库

1、库的概念 函数库是由系统建立的且有一定功能的函数集合。库中存放函数的名称和对应的目标代码,以及连接过程中所需的重定位信息,但是库中对应的函数的源代码一般是不可见的,而对应的头文件中可以看到它的对外接口(函数原型)。 Linux中标准的C函数库放置在/usr/lib下,以文件形式存放。用户也可...

2019-03-18 19:34:17

阅读数 21

评论数 0

Buildroot, yocto 的对比

翻译自Buildroot vs. OpenEmbedded or Yocto Project: A Four Hands Discussion - 2016.pdf Buildroot 和 yocto的对比 对比内容: (1) 嵌入式构建系统 目标是构建一个完整的,客制化的嵌入式Linux...

2019-03-15 15:13:33

阅读数 76

评论数 0

linux GCC -O参数设置整理

-O参数只有5个级别,并不是设置的越高越好(以前的GCC支持很高的级别,但是现在确实只有5级) ◆-O0:关闭所有优化选项 ◆-O1:基本优化,编译器会生成更快的代码 ◆-O2:-O1的升级版,推荐使用 ◆-O3:这是目前最高的优化级别,它会使用更多的编译时间,虽然它生成的代码只会比-O2...

2019-03-07 16:48:08

阅读数 20

评论数 0

Gcc编译时出现 [-Werror=unused-parameter]

项目在开发的时候可能要求将所有的warning 都暴露出来,在gcc 编译的时候需要加上flag -Wall。 如果没有使用的变量或者函数,就会在这个时候暴露出来,并提示如下信息: error: unused parameter ‘spid’ [-Werror=unused-paramete...

2019-03-01 10:10:58

阅读数 212

评论数 0

Visio2016下载激活破解

转自:https://blog.csdn.net/Sirius_hly/article/details/80753440   一.下载Visio2016     可以在官网下载,也可以在我的网盘下载     链接:https://pan.baidu.com/s/1MreUpYpk5WoGi...

2019-02-21 15:12:43

阅读数 331

评论数 0

Kernel中Kconfig小结

前言 当执行#make menuconfig时会出现内核的配置界面,所有配置工具都是通过读取"arch/$(ARCH)Kconfig"文件来生成配置界面,这个文件就是所有配置的总入口,它会包含其他目录的Kconfig 注:对于uboot来讲,配置的总入口在uboot/Kco...

2019-02-19 16:36:20

阅读数 100

评论数 0

notepad++ 中tab转换为空格

有两种方式转换: 1、是在编辑之前直接转换 2、将已经是tab格式的文件转换为空格   1、在编辑之前转换   2、将已经是tab格式的文件转换为空格 将第一步设置完成后,选中需要格式的文字,通过tab to space 即可格式化。             ...

2019-01-28 15:43:18

阅读数 160

评论数 0

Android HIDL 在Java 中使用

前言: HIDL 接口主要通过本机代码使用,因此 HIDL 专注于自动生成高效的 C++ 代码。不过,HIDL 接口也必须能够直接通过 Java 使用,因为有些 Android 子系统(如 Telephony)很可能具有 Java HIDL 接口。本文介绍了 HIDL 接口的 Java 前端,详...

2019-01-23 20:21:43

阅读数 256

评论数 0

Android HIDL 中的数据类型

HIDL 的数据类型分两种情况:HIDL C++(C++实现)、HIDL Java(Java 实现)   用户定义类型(UDT) 对于Java,在 types.hal 中声明的每个顶级类型都有自己的 .java 输出文件(根据 Java 要求)。例如: package android.h...

2019-01-17 21:04:14

阅读数 603

评论数 0

Android HIDL 中的函数

C++ 函数参数 .hal 文件中列出的参数会映射到 C++ 数据类型。未映射到基元 C++ 类型的参数会通过常量引用进行传递。 对于具有返回值(具有 generates 语句)的每个 HIDL 函数,该函数的 C++ 参数列表中都有一个附加参数:使用 HIDL 函数的返回值调用的回调函数。...

2019-01-17 20:49:29

阅读数 285

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭