Linux应用
文章平均质量分 75
Linux的
好好睡觉好好吃饭
这个作者很懒,什么都没留下…
展开
-
线程(四):清理机制+线程属性设置
函数原型:功能:为当前线程注册一个清理函数(在注销pop之前,也就是push和pop之间,如果退出,就会触发清理动作)参数:@routine: 指向要注册的清理函数@arg : 清理函数的参数函数原型:功能:注销清理函数参数:execute: 是否要强制清理0: 自动清理1: 强制清理。原创 2024-04-28 14:52:34 · 124 阅读 · 0 评论 -
JSON数据格式讲解与cJSON库的使用
cjson原创 2024-04-16 17:47:42 · 1142 阅读 · 0 评论 -
Linux:时间显示(函数介绍)
【代码】Linux:时间显示(函数介绍)原创 2023-12-14 16:00:26 · 467 阅读 · 0 评论 -
Linux Framebuffer应用编程
把red、green、blue这三种8位颜色值,根据RGB565的格式,只保留red中的高5位、green中的高6位、blue中的高5位,组合成一个新的16位颜色值。RGB三原色(红、绿、蓝)来表示的,在不同的BPP格式中,用不同的位来分别表示R、G、B,如下图所示。当LCD是16bpp时,要把color变量中的R、G、B抽出来再合并成RGB565格式。如果要使用宏FBIOGET_VSCREENINFO获取屏幕的可变参数,再把新的16位颜色值写入Framebuffer。ioctl的作用非常强大、灵活。原创 2023-12-03 18:40:32 · 582 阅读 · 0 评论 -
数据库:sqlite3
【代码】数据库:sqlite3。原创 2023-11-17 15:43:19 · 81 阅读 · 0 评论 -
通信协议TFTP:通过UDP实现数据传输
netascii : 不使用octet : 广泛使用的TFTP传输模式mail : 邮件模式已经过时,不使用。原创 2023-11-17 15:02:57 · 113 阅读 · 0 评论 -
线程(三):线程通信:同步(条件变量、无名信号量)+互斥(互斥锁)
sem_t sem;参数:@cond: 条件变量的首地址@mutex: 互斥锁(在调用pthread_cond_wait函数之前要定义并初始化一个互斥锁)//1. 获取互斥锁//2. 调用pthread_cond_wait//2.1 将当前的线程放入队列里//2.2 解锁//2.3 在队列里休眠//2.4 重新获取锁//从队列删除//3. 执行代码//4. 解锁返回值:成功返回0 失败错误码。原创 2023-11-07 10:38:04 · 70 阅读 · 0 评论 -
线程(二):线程的使用(-lpthread)+创建+退出+回收
线程使用第三方库函数,在使用线程的函数时首先要安装线程函数相关的man手册。//man手册可以使用进程命令ps -ajx 查看多线程状态当进程运行状态中含有 l 的时候说明是多线程状态,l是进程的附加状态。原创 2023-11-06 20:20:17 · 351 阅读 · 0 评论 -
线程(一):线程详细理解
本质区别:进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位。包含关系:一个进程至少有一个线程,线程是进程的一部分,所以线程也被称为轻权进程或者轻量级进程。资源开销:每个进程都有独立的地址空间,进程之间的切换会有较大的开销;线程可以看做轻量级的进程,同一个进程内的线程共享进程的地址空间,每个线程都有自己独立的运行栈和程序计数器,线程之间切换的开销小。原创 2023-11-06 16:50:14 · 38 阅读 · 0 评论 -
进程(五)(理解):IPC进程间通信:消息队列
【代码】进程(五)(理解):IPC进程间通信:消息队列。原创 2023-11-06 15:35:00 · 35 阅读 · 0 评论 -
进程(四)(理解):传统进程间通信:管道
无名管道的通讯原理是在内核中完成的,无名管道只能在亲缘进程间通信。无名管道的大小为64K,它是一个半双工的通信方式,无名管道在使用的时候不能使用 lseek 函数(因为原理和队列相似,先进先出)。可以在任意进程间通信,有名管道会在用户空间创建一个管道文件,管道文件是在内存存放的。如果想要通过有名管道实现进程间通信,就在当前进程中打开一个管道文件,产生一个文件描述符 fd 并对其操作即可。原创 2023-11-06 15:24:49 · 33 阅读 · 0 评论 -
进程(三)(重点):共享内存(使用最多,效率最高)+信号量(信号灯)
共原创 2023-11-02 17:11:47 · 67 阅读 · 0 评论 -
进程(二):进程间通信(简单描述)
根据不同的需求,我们会选择不同的通信方式实现。虽然共享内存是效率最高的,使用最多的,不过也存在一些,很简单就可以实现的通信。进程由一个pcb结构体+虚拟内存(数据段、代码段)组成,并且进程间是相互独立的。进程与进程之间的交互,就需要通过通信实现。无名管道(只能在亲缘进程间通信)有名管道(任意进程间通信)原创 2023-11-01 16:59:49 · 34 阅读 · 0 评论 -
进程(一):进程介绍与相关函数
创建一个进程,操作系统为该进程分配一个task_struct来标识它,同时给它分配4G的虚拟内存空间(3G用户空间,1内核空间),只要进程执行结束,分配给它的资源都会被回收。1(init):1号进程 是 0号进程通过kernel_thread函数创建的,它主要是用来在启动的时候初始化各种硬件,硬件初始化完之后,init进程为孤儿进程回收资源。0(idle):也称为swapper进程,在操作系统启动的时候就已经创建的进程,0号进程是1号进程和2号进程的父进程。//进程组内会有多个进程。原创 2023-11-01 16:22:17 · 50 阅读 · 0 评论 -
信号机制讲解
信号是Linux系统为了相应某些状况而产生的事件。进程收到信号后采取相应的动作。kill -l可以查看所有信号。原创 2023-10-30 20:17:39 · 26 阅读 · 0 评论 -
动态库与静态库
所以静态库生成的可执行文件体积较大,但是效率较高,因为不依赖于libxx.a库文件,直接就可以执行可执行文件,更新比较麻烦。2、可执行程序编译时,不会连接到动态库,而是在程序执行的时候,将动态库加载到内存中,内存中最多只有一份,可执行程序比较小。如果用户想要使用这个库,就要将自己的库文件和.c文件编译生成一个可执行文件(将库函数放在可执行文件中),动态库生成的可执行文件体积较小,效率较低(只是相对于静态库)其实效率还是挺高的。将.c文件删除,不删除main.c文件,根据使用方式,选择对动态库的移动。原创 2023-10-30 19:33:14 · 51 阅读 · 0 评论 -
IO介绍(三):文件操作:文件IO
POSIX(Portable Operating System Interface,可移植操作系统接口规范,目的是提高UNIX环境下程序的可移植性。原创 2023-10-26 16:36:33 · 44 阅读 · 0 评论 -
IO介绍(二):文件操作:标准IO
标准I/O指的是ANSI C中定义的用于I/O操作的一系列函数。只要包含C库(stdio.h)就可以调用标准I/O。由于标准I/O封装了缓冲区,使得在读写文件的时候减少了系统调用的次数,提高了效率。具体的可以IO介绍(一)原创 2023-10-25 19:45:21 · 31 阅读 · 0 评论 -
IO介绍(一):文件操作:清楚理解标准IO与文件IO
文件(File)是一个具有符号名字的一组相关联元素的有序序列。原创 2023-10-25 14:12:52 · 38 阅读 · 0 评论 -
Linux中相关介绍:main函数参数(argc、argv)+相关函数介绍
参数功能:用于传递命令行参数的参数参 数:@argc:一共有几个参数(包括./test)@argv:指向字符串数组的指针,每个字符串表示一个命令行参数argv[n]:依次向后的参数# include <stdlib.h> 函数原型: int atoi(const char * str);功 能:将字符串转为整数参 数:str:要转换的字符串。返回值:如果成功,则返回相应的整数值;如果发生错误,则返回 0。原创 2023-11-16 15:00:16 · 256 阅读 · 0 评论 -
Linux的使用(二):vim编辑器+共享文件夹
在路径 /etc/vim/ 下编辑 vimrc ,在文件末尾#endif下面 ESC+i 进入输入模式输入以下内容set nu //显示行号set ts=4 //设置缩进为4set autoindent //启动自动缩进gg=G 自动对齐(命令模式下,不用输入冒号)在命令模式下;按ctrl+v 进入可视模式,配合上下左右按键,可以选中需要操作的内容,再配合y(复制),d(删除)进行相关的操作vim -o 上下模式打开两个文件(ctrl+w 来转换控制窗口)原创 2023-10-29 22:18:26 · 23 阅读 · 0 评论 -
Linux使用(一):常用命令+文件属性介绍
参数可以组合使用- 在复制、粘贴、移动等很多指令中,对多个文件的描述可以使用通配符*来操作- Tab按键: 自动补全文件内已有的名字- su :进入root- exit :退出root同时可以使用 ls -l 命令来查看- 普通文件 指ASCII文本文件、二进制文件以及硬链接文件d 目录文件 包含若干文件或子目录l 符号链接 只保留所指向文件的地址而非文件本身p 管道文件 用于进程间通信c 字符设备 原始的I/O设备文件,每次操作仅操作1个字符(例如键盘)原创 2023-10-24 19:10:58 · 17 阅读 · 0 评论 -
Linux相关介绍:Linux版本与目录结构
Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。原创 2023-10-24 14:15:33 · 23 阅读 · 0 评论