Linux 应用编程 (Linux C/线程/IPC)
文章平均质量分 93
Linux 应用编程
deepwater_zone
嵌入式开发、学习交流
展开
-
GCC(GNU Compiler Collection,GNU编译器套件)
GCC(GNU Compiler Collection,GNU编译器套件),是由GNU开发的编程语言编译器。gcc主要软件包如下:名称功能描述cppC 预处理器gccC 编译器g++C++编译器gccbug创建BUG报告的Shell脚本gcov覆盖测试工具,用于分析在程序的哪个位置做优化效果最佳libgccGCC的运行库l......原创 2019-05-04 23:19:00 · 4660 阅读 · 1 评论 -
Linux 文件I/O(open,close,read,write,lseek,fcntl)
1、Linux 文件结构文件是数据的一种组织形式,是具有文件名的一组相关信息的集合,是文件系统中存储数据的一个命名的对象。Linux 下一切都是文件,无论程序、文档、数据库这样的普通文件,还是链接文件和目录这样的特殊文件,甚至连硬件设备都是用文件来描述的。Linux 下所有文件的描述结构都是相同的,包含索引节点和数据,如下图所示:...原创 2020-03-31 01:02:36 · 607 阅读 · 0 评论 -
线程(thread)
文章目录1、线程概念1.1 线程和进程的关系1.2 线程间共享资源1.3 线程间非共享资源1.4 线程优缺点2、线程原语2.1 pthread_create:创建线程2.2 pthread_self:获取调用线程tid2.3 pthread_exit:调用线程退出函数2.4 pthread_join2.5 pthread_cancel2.6 pthread_detach2.7 pthread_equal3、线程终止方式4、线程属性4.1 线程属性初始化4.2 线程的分离状态(detached state)4原创 2020-07-31 11:27:35 · 504 阅读 · 0 评论 -
线程同步(互斥锁 mutex,临界区 Critical Section)
1、线程同步 2、互斥锁原创 2020-07-13 23:24:42 · 1124 阅读 · 0 评论 -
Linux 多线程(Multi-threading,pthread_xxx,Mutex)
1、Linux 多线程概述线程(thread)是包含在进程内部的顺序执行流,是进程中的实际运作单位,也是操作系统能够进行调度的最小单位。一个进程中可以并发多条线程,每条线程并行执行不同的任务。线程与进程(Process)的关系可以归结为以下几点:序号描述1一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个主线程2资源分配给进程,同一进程的所有线程...原创 2019-07-31 22:46:06 · 512 阅读 · 0 评论 -
原子操作(atomic operation)
文章目录1、概述1.1 定义1.2 特性1.3 优点2、处理器如何实现原子操作2.1 使用总线锁保证原子性2.2 使用缓存锁保证原子性参考博客:https://www.jianshu.com/p/440a629f50a21、概述“原子操作(atomic operation)是 不需要 同步(synchronized)”,这是多线程编程的老生常谈了。原子操作是指不会被 线程调度机制 打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何 context switch (切换到另一个线程)。原创 2020-07-26 16:45:45 · 1132 阅读 · 0 评论 -
Linux 进程(Process,PID,PPID,fork,Daemon)
程序(program)是一个普通文件,是为了完成特定任务而准备好的指令序列与数据的集合,这些指令和数据以可执行映像的格式保存在磁盘中。进程(process)是一个已经开始执行但还没终止的程序实例。程序是个静态的文件,进程是一个动态的实体。1、进程ID每个进程在创建时,内核都会为之分配一个进程ID(Process ID,简称PID)用来标识当前的进程,进程ID是一个类型为pid_t的整数...原创 2019-05-02 21:53:26 · 829 阅读 · 0 评论 -
Linux 进程间通信(IPC)(pipe,Signal,Semaphore,Shared Memory,Message Queue,Socket)
Linux进程间通信方式包括管道(匿名管道和命名管道)、信号、信号量、共享内存、消息队列和套接字等方式。1、管道管道是一个进程连接数据流到另一个进程的通道,它通常被用来把一个进程的输出端连接到另一个进程的输入端。在Linux命令中通常用符号|来表示管道。例如:$ ps -ef | grep init此命令中ps是一个独立的进程,grep也是一个独立的进程,中间的管道把ps原本要输出...原创 2019-05-02 23:20:30 · 1215 阅读 · 1 评论 -
Linux 的进程状态和转换(Running,Ready,Sleep,Stop)
SSH 是 Secure Shell 的缩写,是建立在应用层和传输层基础上的安全协议,能够有效防止远程管理过程中的信息泄露问题。原创 2020-03-31 11:22:49 · 3037 阅读 · 0 评论 -
Vim 安装与使用(install,命令模式,输入模式,末行模式,搜索字符串)
Vim 是 Vi 的加强版,比 Vi 更容易使用。Vi 的命令几乎全部都可以在 Vim 上使用,安装了 Vim 的系统,在命令行输入 vi,实际启动的是 Vim 编辑器。1、Vim编辑器安装命令行:sudo apt-get install vim2、为了方便写代码,在编辑器中加入配置:sudo vi /etc/vim/vimrc3、什么都不要改,只在最后一行加...原创 2018-12-02 22:54:01 · 799 阅读 · 0 评论 -
Vim 进阶
文章目录1、命令模式(Command mode)1.1 切换到 输入模式 的命令1.2 移动光标命令1.3 屏幕翻滚命令1.4 复制、删除和粘贴命令2、末行模式(Last line mode)1、命令模式(Command mode)1.1 切换到 输入模式 的命令Vim 默认是以 只读模式打开的文档,因此我们要切换到 输入模式,切换到 输入模式的命令如下:序号输入模式的命令描述1i在当前光标所在字符的前面,转为输入模式2I在当前光标所在行的行首,转换为输入模式原创 2020-07-11 16:24:52 · 267 阅读 · 0 评论 -
Linux C 编程(Vim,GCC,Makefile 规则,模式规则,自动化变量,伪目标)
1.1 交叉编译由于嵌入式系统资源匮乏,一般不能像 PC 一样安装本地编译器和调试器,不能在本地编写、编译和调试自身运行的程序,而需借助其它系统如 PC 来完成这些工作,这样的系统通常被称为宿主机。宿主机通常是 Linux 系统,并安装交叉编译器、调试器等工具;宿主机也可以是 Windows 系统,安装嵌入式 Linux 集成开发环境。在宿主机上编写和编译代码,通过串口、网口或者硬件调试器将...原创 2020-03-31 10:59:44 · 682 阅读 · 0 评论 -
Makefile 基础(规则,目标,伪目标,自定义变量,自动化变量,模式规则)
在终端输入make命令就会调用make工具,make会在当前目录按照文件名顺序寻找Makefile文件,依次按照:GNUmakefile、makefile、Makefile。如果找到其中的任何一个(通常习惯采用的文件名是Makefile),就读取并按照其中的规则执行,否则报错。1、目标Makefile的基本语法格式是:target : prerequisites<Tab>...原创 2019-04-28 23:01:54 · 950 阅读 · 0 评论 -
Shell 编程基础(...)
1、基础概念Shell 程序一般被称为脚本(Script),是一组命令的集合,最简单的甚至可以单纯地堆砌命令,就像前文中提到的 Shell 文件。这种脚本最明显的好处是 重复一系列固定命令时 减少敲击键盘的次数。Shell 解释脚本的过程就是从一个文件读入字符流,然后进行处理,最后把结果送到一个文件,故交互式 Shell与执行脚本的 Shell本质上并无区别。只不过交互式运行的 Shell ...原创 2020-03-31 15:26:01 · 270 阅读 · 0 评论