https://s3.ax1x.com/2021/01/21/s4crsU.png

BBing's Blog

Hello, Good Hunter

初探Linux文件和文件系统

前面的文章讲了进程控制和进程通信的内容, 在学习和准备这些内容的过程中, 发现对Linux文件系统并不是很熟悉. 此前对Linux文件系统的理解非常肤浅, 嘴上会说"万物皆是文件"的话, 但是并不是很理解Linux的文件系统. 这里插入一篇文章, 学习和整理一下Linux文件系统的内容.

cmake链接ndk交叉编译

需求: 用CMake构建和编译生成的算法库, 作为动态共享库link到Android项目.

配置

在Android项目的Android.mk中添加:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
include $(CLEAR_VARS)
LOCAL_PATH          := $(XXXX_PATH)
LOCAL_MODULE        := libxxx
LOCAL_MULTILIB      := 64
LOCAL_SRC_FILES_64  := ./algo/libxxx.so
LOCAL_MODULE_SUFFIX := .so
LOCAL_MODULE_TAGS   := optional
LOCAL_MODULE_CLASS  := SHARED_LIBRARIES
LOCAL_PROPRIETARY_MODULE := true
include $(BUILD_PREBUILT)

include $(CLEAR_VARS)

进程控制和通信(三) · 消息、信号、共享内存

消息队列

消息队列是在内核空间开辟的一块共享内存, 类似于以下结构:

https://z3.ax1x.com/2021/04/23/cXVKj1.png
内核提供共享区域做IPC

类似于具名管道, 消息队列也有一个标识符MSG_KEY, 用来标识不同的消息队列. 只要知道某个消息队列的标识符, 并且拥有相应的权限, 就可以使用相应的消息队列. 所以, 消息队列可以在没有亲缘关系的进程间使用.