linux
文章平均质量分 75
东方欲晓w
你若不勇敢,谁替你坚强。
展开
-
Linux应用编程:定时器
settimer工作机制是,先对it_value倒计时,当it_value为零时触发信号,然后重置为it_interval,继续对it_value倒计时,一直这样循环下去。3、使用 setitimer 时,通知信号的类别不能改变:SIGALARM,SIGPROF 等,而这些都是传统信号,而不是实时信号,因此有 timer overrun 的问题;2、setitmer 计时器时间到达时,只能使用信号方式通知使用 timer 的进程,而 POSIX timer 多种通知方式,比如信号,或者启动线程。原创 2024-01-12 21:45:41 · 1040 阅读 · 0 评论 -
FreeRTOS(以STM32F1系列为例子)
API 函数的参数uxPriority为创建的任务赋予了一个初始优先级。这个侁先级可以在调度器启动后调用API 函数进行修改。文件中设定的编译时配置常量的值,即是最多可具有的优先级数目。FreeRTOS本身并没有限定这个常量的最大值,但这个值越大,则内核花销的内存空间就越多。所以总是建议将此常量设为能够用到的最小值。低优先级号表示任务的优先级低,优先级号 0 表示最低优先级。有效的优先级号范围从 0 到。如果被选中的优先级上具有不止一个任务,调度器会让这些任务轮流执行。原创 2023-09-30 20:23:06 · 422 阅读 · 0 评论 -
SQLite3 操作命令以及c/c++编程API和例子
。。导出完整的数据库在一个文本文件中:。所有的SQL语句都是使用分号结尾,不区分大小写,两个减号“--”代表注释。原创 2023-09-11 19:18:27 · 814 阅读 · 0 评论 -
Linux Shell 脚本语法以及常用命令
Linux Shell 脚本语法以及常用命令原创 2023-09-05 10:44:12 · 514 阅读 · 0 评论 -
Linux网络编程Socket通信6-Libevent移植与使用
对I/O事件、信号和定时事件提供统一的处理。事件驱动、高性能、轻量级、专注于网络、跨平台、支持多种I/O多路复用技术、支持I/O,定时器和信号事件、注册事件优先级。bufferevent 是 libevent 中的一个事件缓冲 IO,内部实现了基本 socket recv/send 操作 ,用户只需要调用 bufferevent 的 API 即可实现数据的读写。创建好libevent_base根节点后,需要等待事件的产生,也就是等待想要等待的事件的激活,在libevent中提供了对应的接口,类似。原创 2023-08-30 20:13:48 · 321 阅读 · 0 评论 -
Linux网络编程Socket通信5-UDP/domain
unix domain socket 本地套接字通信,全双工。套接字用文件来标识。这个文件在绑定之前是不能存在的。对于文件客户端可以使用隐式绑定,但是服务器不可以。原创 2023-08-09 10:57:38 · 166 阅读 · 0 评论 -
Linux网络编程Socket通信4-poll/epoll/reator/threadpoll
select 跨平台, poll 没有1024文件描述符的限制,缺点也很明显,每次监听都需要将监听到的信息从应用层拷贝到内存,返回变化的文件描述符的个数,具体那个文件描述符需要遍历,大量并发、少量活跃效率比较低。创建一定数量的线程,和一个任务队列,线程池中的线程不停的去任务队列中取任务,又任务到来直接往任务队列中添加。epoll 优点:没有1024文件描述符的限制,下次监听不需要将需要监听的文件描述符从应用层再次拷贝到内核,返回的是已经变化的文件描述符,不需要遍历,大量并发,少量活跃效率高。原创 2023-08-09 10:53:40 · 167 阅读 · 0 评论 -
json解析
开源网址:https://sourceforge.net/projects/cjson/优点在于,即使 json 文件出现错误,还是可以读取出其他的内容。两个文件拷贝到自己的项目中即可,在。花括号表示对象,使用。下面都是可以使用的。原创 2023-06-17 14:50:20 · 947 阅读 · 0 评论 -
linux网络编程socket通信3-select
缺点:文件描述符1024限制,受到FD_SETSIZE的限制、只是返回文件描述符的个数,具体那个需要遍历。多路IO复用:内核监听多个文件描述符的属性(读和写缓冲区)变化,poll、epoll、select。应用层通过内核select监听各个文件描述符,对于应用层的文件描述符集合我们最好需要备份一下,如果有某个文件的读缓冲区发生了变化,那么这个时候就可以读了,将这个事件告知我们的应用层。使用数组保存监听lfd后,Accept产生的cfd,在遍历监听该数组即可。之前的文件描述符合集。原创 2023-03-20 09:43:34 · 122 阅读 · 0 评论 -
linux网络编程socket通信2
原理:原函数和包裹函数的函数名差异只有首字母大写,这是因为man page对字母大小写不敏感,同名的包裹函数一样可以跳转至man page , 新包裹需要检查返回值的函数,让代码不那么肥胖。在接收和发送数据时个人设计一个守护进程(线程),定时发送Heart-Beat包,客户端/服务器收到该小包后,立刻返回相应的包即可检测对方是否实时在线。为了实时检测查询的链接状态,常用的方法就是加入心跳机制。原创 2023-03-03 21:01:37 · 162 阅读 · 0 评论 -
c语言对xls文件的操作
1、xls文件中每个格子之间的间距就是一个tab键,也就是。这些可以将一个xls文件使用记事本打开便可以一目了然。2、xls文件的行和行之间是使用换行的,也就是。原创 2023-02-01 22:02:21 · 1250 阅读 · 1 评论 -
linux mysql基本查询语句、表连接、where子句(第三天)
左外连接的结果集 = 内连接的结果集 + 左表中匹配不上的记录。右外连接的结果集 = 内连接的结果集 + 右表中匹配不上的记录。使用where子句实现三表之间的连接 使用and进行连接。作用: 根据条件表达式从数据源中筛选出符合条件的记录。需求:列出学生的信息,包括学号、姓名和班级名称。语法:逻辑表达式1 and 逻辑表达式2。语法:逻辑表达式1 or 逻辑表达式2。判断一个表达式的值是否出现在列表中。判断表达式的值是否在给定的闭区间。判断表达式的值是否符合给定的模式。:匹配任意长度的任意字符,原创 2023-02-01 11:20:05 · 219 阅读 · 0 评论 -
linux ubunut vimrc配置
进入vim编辑模式,删除全部,将下面内容给复制进去,保存即可。原创 2023-01-31 09:03:07 · 158 阅读 · 0 评论 -
Linux网络编程socket通信1
三次握手: 主动发起连接请求端,发送 SYN 标志位,请求建立连接。携带序号号、数据字节数(0)、滑动窗口大小。 被动接受连接请求端,发送 ACK 标志位,同时携带 SYN 请求标志位。携带序号、确认序号、数据字节数(0)、滑动窗口大小。 主动发起连接请求端,发送 ACK 标志位,应答服务器连接请求。携带确认序号。四次挥手: 主动关闭连接请求端, 发送 FIN 标志位。 被动关闭连接请求端, 应答 ACK 标志位。----- 半关闭完成。 被动关闭连接请求端, 发送 FIN 标志位。原创 2023-01-29 16:23:55 · 174 阅读 · 0 评论 -
linux MySql选课系统数据库 DML操作(第二天)
修改数据库的默认编码为。原创 2023-01-22 22:12:38 · 318 阅读 · 0 评论 -
linux MySql 基础知识(第一天)
是在关系数据库上执行数据操作、检索以及维护所使用的标准语言。查询数据、操纵数据、定义数据、控制数据,所有关系型数据库都是用相似的语言。创建的时候是要先创建主表,然后在创建从表。删除表的时候就必须要先删除从表在删除主表。其中的length表示该小数的最大位数。precision表示精度设置。注意上面的-p和密码之间是没有空格的。数据最大位数为5,小数点后面保留5位。从表中的班号就要来自于主表中的班号。原创 2023-01-18 16:21:21 · 68 阅读 · 0 评论 -
linux网络编程基础知识
地址和端口号,不知道目的主机的硬件地址, 而数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃。数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,最后将应用层数据交给应用程序处理。源地址和目的地址是指网卡的硬件地址(也叫MAC地址),长度是48位,是在网卡出厂时固化的。的主机的硬件地址是多少”,并将这个请求广播到本地网段(以太网帧首部的硬件地址填。传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议。原创 2023-01-15 19:25:46 · 82 阅读 · 0 评论 -
Linux进程以及进程间管道通信
(0不是有效进程ID,init最小,为1)。 子进程终止时,子进程残留资源 PCB 存放于内核中,PCB 记录了进程结束原因,进程回收就是回。 子进程终止,父进程尚未对子进程进行回收,在此期间,子进程为“僵尸进程”。并发:是同一个cpu,执行不同的进程,使用不同的 时间片,只是有一个进程在执行。成功返回① 父进程返回子进程的ID(非负) ②子进程返回 0。 父进程先于子进终止,子进程沦为“孤儿进程”,会被 init 进程领养。回收僵尸进程,得 kill 它的父进程,让孤儿院去回收它。原创 2022-12-20 11:45:03 · 217 阅读 · 0 评论 -
Linux线程同步
;==};64};==};64};1};借助互斥锁管理共享数据实现同步未加互斥锁int ret;//用于判断是否创建了线程 int i = 0;//用于循环创建线程 pthread_t tid;//用于create线程的传出参数 srand(time(NULL));int * a;if(ret!= 0) {原创 2022-12-20 09:29:22 · 205 阅读 · 0 评论 -
linux文件操作函数
linux 文件操作函数详解原创 2022-11-26 18:32:06 · 1228 阅读 · 0 评论 -
Linux 守护进程、线程
①进程组:一个或多个进程的集合。当父进程,创建子进程的时候,默认子进程与父进程属于同一进程组。进程组ID其进程ID可以使用kill -SIGKILL -进程组ID(负的)来将整个进程组内的进程全部杀死。组长进程可以创建一个进程组,创建该进程组中的进程,然后终止。只要进程组中有一个进程存在,进程组就存在,与组长进程是否终止无关。进程组生存期:进程组创建到最后一个进程离开(终止或转移到另一个进程组)。一个进程可以为自己或子进程设置进程组ID②会话:多个进程组的集合。原创 2022-11-21 20:42:46 · 425 阅读 · 0 评论 -
Linux信号学习3 (signal、sigaction、利用捕捉回收子进程、pause、中断系统调用)
SIGCHLD信号参数条件。原创 2022-10-25 08:48:10 · 441 阅读 · 0 评论 -
Linux信号学习2 (raise、abort、信号集操作函数)
【代码】Linux信号学习2 (raise、abort、信号集操作函数)原创 2022-10-20 10:14:51 · 790 阅读 · 0 评论 -
linux信号学习1(kill、alarm、setitimer函数)
使用setitimer函数实现alarm函数的1秒打印数字的程序mian函数。原创 2022-10-19 19:34:50 · 159 阅读 · 0 评论 -
linux文件目录命令
pwd (显示当前工作目录的绝对路径)ls (显示文件目录)-a:显示所有的文件-l:以列表的形式显示-h:数据以xxxk的形式显示-F:对于是目录的文件后面加上/cd (切换到指定的目录)语法规则:cd [参数]eg : cd ~ 回到家目录cd … 回到当前目录的上一级目录当前在etc目录下,要去home目录下的tom目录下(使用相对路径)(使用绝对路径)mkdir (创建目录)语法规则:mkdir [选项] 要创建的目录-p 创建多级目录在home目录下创建dog目录。原创 2022-10-03 16:57:20 · 2111 阅读 · 0 评论 -
mmap内存映射
存储映射I/O (Memory-mapped I/O) 使一个磁盘文件与存储空间中的一个缓冲区相映射。于是当从缓冲区中取数据,就相当于读文件中的相应字节。于此类似,将数据存入缓冲区,则相应的字节就自动写入文件。这样,就可在不适用read和write函数的情况下,使用地址(指针)完成I/O操作。使用这种方法,首先应通知内核,将一个指定文件映射到存储区域中。这个映射工作可以通过mmap函数来实现。原创 2022-09-26 18:36:10 · 2230 阅读 · 0 评论 -
linux下的文件搜索功能
语法格式 find 搜索的路径 参数(-name -size -type) 属性条件。需要保证数据库中的内容是最新的。命令用于查找文件里符合条件的字符串。原创 2022-09-25 14:33:29 · 408 阅读 · 0 评论 -
gcc、g++详情、静态库、动态库制作
,然后通过ar工具将目标文件打包就可以得到静态库(生产静态库,需要对源文件进行汇编操作(生产动态库需要使用gcc 添加。)的到二进制的目标文件(动态库我们又称之为共享库。原创 2022-09-24 17:18:54 · 658 阅读 · 0 评论 -
各种编码中使用到的工具类
1.1、Modbus Rtu CRC16 表格法实现 g(x) = x^16 + x^15 + x^2 + x^0。在这个工具类中我会添加一些使用到的工具放在这里面,这里面的代码很多时来自网上的,自己进行了部分的更改,持续更新。1.2 、Modbus Rtu CRC16 直接法法实现。1.3 、使用lua直接法实现。原创 2022-09-19 14:43:14 · 319 阅读 · 0 评论 -
linux的压缩与解压缩
在linux下压缩包格式包含:tar.gz , .tgz , tar.bz2 , zip , .rar , .tar.xz。使用zip压缩命令必须要加入参数-r(递归) , 这样才能够让子目录的文件一起压缩。生产的压缩文件后缀为.zip。zip格式的文件在linux中是很常见的的,在某些版本中需要安装后才能够使用。指定目录的话就需要进行添加选项 -d。对对应的zip文件进行解压缩。原创 2022-09-15 15:26:48 · 817 阅读 · 0 评论 -
makefile单目录编写和多目录编写
Makefile编写原创 2022-09-15 15:17:54 · 762 阅读 · 0 评论