自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

czw

吾魂兮无求乎永生,竭尽兮人事之所能

  • 博客(179)
  • 资源 (3)
  • 收藏
  • 关注

原创 文件系统监控——inotify

从 Linux 2.6.13 内核开始,Linux 引入了 inotify,可以通过该机制监控文件或目录的一组指定事件,例如打开、关闭、移动/重命名、删除 、创建或更改属性。创建一个inotify实例并返回一个对应的文件描述符操作inotify实例相关联的“watch list”(创建或者修改已有的)当受监视的文件和目录发生事件时,可以使用 read从 inotify 文件描述符中读取这些事件信息从inotify监控列表中删除项目。

2024-03-28 00:56:18 790

原创 C++日志库——spdlog

spdlog是一个仅有头文件的库,只需要拷贝include下面的文件加到本地工程目录并使用支持C++11的编译器编译即可。

2024-01-14 21:23:18 376

原创 debian12开启pipewire替代pulseaudio

添加了一张无线网卡,上面带的蓝牙无法连接蓝牙耳机,经过一番尝试,发现将默认的pulseaudio替换为pipewire可以解决。安装pipewire。

2024-01-07 11:24:59 570

原创 利用程序名用做参数

我们在编写程序的时候,一般都是处理argv[1]及之后的参数,很少会去处理argv[0]。但是如果我们想让程序表现出不同的行为,就像不同的程序一样,这时候可以将程序创建数个软连接,通过argv[0]来区分。不用每次都在程序后面加单独的参数,使用起来简洁软连接的名字可以让使用者一眼就看出程序的功能,语意上更明确。

2023-12-16 16:25:35 412

原创 C++json库——nlohmann-json

CJSON简单介绍。

2023-12-16 15:58:53 975

原创 LTP测试

LTP源代码说明build.shciCOPYINGdoc 工程文档包含工具和库函数使用手册,描述各种测试docparseIDcheck.shinclude 通用的头文件目录INSTALL LTP安装配置指导文档lib 通用的库函数目录libsltpmenu 规划执行LTP的图形化界面接口m4Makefile LTP顶层目录的Makefile,负责编译安装pan、testcases和toolsmetadatapan 测试的驱动装置。具备随即和并行测试的能力。

2023-12-10 21:11:17 425

原创 FFmpeg抽取视频h264数据重定向

循环读取流中所有的包(AVPacket),为每个包添加特征码和sps/pps等数据(只有关键帧前面要添加sps/pps数据,其他的只需要添加特征码),都处理完后将数据写入文件保存。进一步,直接将h264数据重定向到tcp套接字上,通过实验,可以在其他终端通过ffplay接收并播放。经过实验,可以将h264数据dump到文件中,并可以通过mplayer或ffplay播放。截获解码视频流的思路,首先需要解决如何输出视频码流的问题。打开mp4文件并创建一个空文件用于存储H264数据。

2023-12-10 16:07:47 594

原创 复制粘贴——QT实现原理

qt的剪贴板底层是由各个平台的剪贴板接口驱动的,如果是X11平台,那么整个剪贴板就是X11接口驱动的。

2023-12-10 16:00:41 1043 1

原创 Linux命令——nc

netcat,简写为 nc,是 unix 系统下一个强大的命令行网络通信工具,用于在两台主机之间建立 TCP 或者 UDP 连接,并提供丰富的命令进行数据通信。nc 在网络参考模型属于应用层。使用 nc 可以做很多事情:建立连接,发送数据包,监听端口,扫描端口,处理 ip4 和 ip6,和 telnet 不同,nc 会区分错误输出和标准输出,telnet 则都是标准输出。

2023-12-10 14:15:28 888

原创 Linux命令——watch

watch是周期性的执行下个程序,并全屏显示执行结果。

2023-12-01 23:10:01 465

原创 CppCheck

cppcheck 是一个静态代码检查工具,支持c, c++ 代码;作为编译器的一种补充检查,cppcheck对产品的源代码执行严格的逻辑检查。

2023-11-17 00:01:21 205

原创 INI 配置文件

.ini” 是英文 “initialization” 的头三个字母的缩写,INI 文件的后缀名也不一定是".ini"也可以是".cfg",“.conf ”或者是”.txt"。INI文件的格式最基本的三个要素是:parameters,sections 和 comments。

2023-11-16 23:50:59 169

原创 linux查看端口被哪个进程占用

c 代表当前目录 F 打开的文件,用于写操作。e 可执行的被运行 m 映射文件或者共享库。2、netstat -tunlp|grep 端口号。1、lsof -i:端口号。

2023-11-14 23:11:06 726

原创 云计算的三种服务模式:IaaS,PaaS和SaaS

如:谷歌的Apps,微软的Office 365,Citrix的CloudStack,以及目前比较火的各种云存储(网盘),云相册,云备份,云打印,云监控等正对个人用的云服务产品。6) 计费和监管:因为PaaS平台在计费和监管这两方面不仅达到了IaaS平台所能企及的操作系统层面,比如,CPU和内存的使用量等,而且还能做到应用层面,比如,应用的反应时间(Response Time)或者应用所消耗的事务多少等,这将提高计费和管理的精确性。这一层是和你的生活每天接触的一层,大多是通过网页浏览器来接入。

2023-11-14 00:24:23 1155

原创 C标准库函数——printf

C语言printf函数描述C 库函数 int printf(const char *format, …) 发送格式化输出到标准输出 stdout。printf()函数的调用格式为:printf("<格式化字符串>", <参量表>);声明下面是 printf() 函数的声明。int printf(const char *forma...

2023-11-14 00:19:30 221

原创 最优化基础(五)

若存在。

2023-11-14 00:17:24 348 1

原创 最优化基础(四)

是一个尖锥(pointed cone). 相应地, 包含0 的凸锥称为尖凸锥.****的凸包(convex hull) 是指所有包含。上的一致凸函数, 是指存在常数。处是正定的. 进一步,若存在常数。上的严格凸函数, 是指对任意的。上为严格凸函数的充要条件是,当。上一致凸的充要条件是,存在常数。上是二阶连续可微的. 若对一切。上的凸函数, 是指对任意的。上是一致正定的.****处是半正定的. 若对一切。上是严格凸的充分条件是。上是一致凸的充要条件是。为凸集, 是指对任意的。上为凸函数的充要条件是。

2023-11-14 00:17:00 291

原创 最优化基础(三)

马昌凤. 最优化方法及其Matlab程序设计[M]. 科学出版社, 2010.考虑到标量函数的梯度定义, 有时也把向量函数。处的二阶导数或Hesse 矩阵. 若梯度。的每一点都都二阶连续可微,则称。是(连续) 可微的.向量值函数。的Jacobi 矩阵的转置称为。的Jacobi 矩阵, 记为。处的一阶导数或梯度。的各个分量函数都连续,则称。都是(连续) 可微的,则称。的每一点都连续可微,则称。是二次连续可微的, 则有。##函数的可微性与展开。

2023-11-14 00:16:48 233 1

原创 最优化基础(二)

在算法的收敛性分析中,需要用到向量和矩阵范数的概念及其有关理论。表示实n阶矩阵全体所组成的线性空间.在这两个空间中,我们分别定义向量和矩阵的范数.-范数确实满足范数的定义。下面,我们利用范数的概念来等价地定义向量序列和矩阵序列的收敛性.诱导出来的算子范数,简称算子范数,有时也称为从属于向量范数。的矩阵范数. 此时向量范数和算子范数通常采用相同的符号。1-范数,计算方式为向量所有元素的绝对值之和。它们分别称作行和范数、列和范数和谱范数.-范数,所有向量元素中的最大值。-范数,所有向量元素中的最小值。

2023-11-14 00:16:36 460 1

原创 最优化基础(一)

此外,通常把目标函数为二次函数而约束函数都是线性函数的优化问题称为二次规划;而目标函数和约束函数都是线性函数的优化问题称为线性规划.若指标集$E\cup I=\emptyset $称之为无约束优化问题,否则称为约束优化问题.马昌凤. 最优化方法及其Matlab程序设计[M]. 科学出版社, 2010.上连续可微的多元实值函数, 且至少有一个是非线性的. 记。上的实值函数,称为目标函数. 此外,在以上模型中,在工程设计中有着重要应用的非线性规划,其数学模型为。是某个给定的集合(称为可行集或可行域),

2023-11-14 00:16:04 440

原创 Linux命令——netstat

netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。从整体上看,netstat的输出结果可以分为两个部分:一个是Active Internet connections,称为有源TCP连接,其中”Recv-Q”和”Send-Q”指%0A的是接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。

2023-11-14 00:14:29 105

原创 Linux命令——telnet

执行telnet指令开启终端机阶段作业,并登入远端主机。telnet命令可以帮助你从这台路由器远程登陆到远端开启了telnet服务的设备,包括路由器、交换机、linux服务器等,并且配置当前路由器的telnet服务。

2023-11-14 00:09:31 359

原创 Linux命令——ss

ss 是 Socket Statistics 的缩写。ss 命令可以用来获取 socket 统计信息,它显示的内容和 netstat 类似。但 ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netstat 更快。

2023-11-14 00:06:51 123

原创 Linux命令——ssh

SSH(Secure Shell 的缩写)是一种网络协议,用于加密两台计算机之间的通信,并且支持各种身份验证机制。历史上,网络主机之间的通信是不加密的,属于明文通信。这使得通信很不安全,一个典型的例子就是服务器登录。登录远程服务器的时候,需要将用户输入的密码传给服务器,如果这个过程是明文通信,就意味着传递过程中,线路经过的中间计算机都能看到密码,这是很可怕的。SSH 就是为了解决这个问题而诞生的,它能够加密计算机之间的通信,保证不被窃听或篡改。

2023-11-14 00:02:12 293

原创 Linux 命令——modprobe

用于智能地向内核中加载模块或者从内核中移除模块。modprobe可载入指定的个别模块,或是载入一组相依的模块。modprobe会根据所产生的相依关系,决定要载入哪些模块。若在载入过程中发生错误,在modprobe会卸载整组的模块。modprobe命令的主要作用有以下几个方面:加载内核模块:modprobe命令可以根据模块名自动查找并加载相应的内核模块。当系统需要某个功能或驱动程序时,可以使用modprobe命令加载相应的内核模块,使其成为内核的一部分,从而实现该功能或驱动程序的使用。

2023-11-12 20:08:19 378

原创 linux驱动程序——入门

内核的模块装载器里保存有内核的版本信息,在装载模块时,装载器会比较所保存的内核vermagic与此模块的modinfo段里保存的vermagic信息是否一致,两者一致时,模块才能被装载。Linux内核在使用驱动时首先要装载驱动,在装载过程中进行一些初始化动作(建立设备文件、分配内存等),在驱动程序中需提供相应函数来处理驱动初始化工作,该函数须使用。Linux系统在退出是需卸载Linux驱动,卸载过程中进行一些退出工作(删除设备文件、释放内存等),在驱动程序中需提供相应函数来处理退出工作,该函数须使用。

2023-11-05 22:53:10 284

原创 libevent学习——例子.md

接着看信号事件回调,很简单,就是打印信号并在第三次回调时删除事件。接着看回调,回调函数的类型都是固定的。第一个例子位于libevent源码。下面,是一个超时事件回调。,是一个信号事件回调。

2023-10-11 00:13:52 197

原创 libevent学习——辅助类型和函数

辅助类型和函数。

2023-09-26 01:21:17 457

原创 libevent学习——事件event

事件event。

2023-09-26 01:10:54 195

原创 libevent学习——事件循环event_loop

事件循环event_loop。

2023-09-26 00:47:39 256

原创 qemu-tcmu介绍

TODO。

2023-09-19 00:12:43 83

原创 libevent学习——event_base

使用 libevent 函数之前需要分配一个或者多个event_base结构体。每个event_base结构 体持有一个事件集合,可以检测以确定哪个事件是激活的。如果设置event_base使用锁,则可以安全地在多个线程中访问它。然而,其事件循环只能 运行在一个线程中。如果需要用多个线程检测 IO,则需要为每个线程使用一个event_base。每个event_base都有一种用于检测哪种事件已经就绪的 “方法”,或者说后端。

2023-09-19 00:05:13 296

原创 libevent数据结构——TAILQ_结构体

TAILQ_结构体在文件和文件structstructtype;structtype;structtype;同时,我们还发现在include 的同级目录下有一个中也定义了TAILQ_相关的结构体,并且还定义了一些相关的操作宏,这个放到以后说。由这两个结构体配合构造出来的队列一般如下图所示:其中最下面的type类是最终的业务数据,上面的TAILQ开头的节点是链表节点,这样链表结构和业务数据完全分离开来了,任何业务数据结构体只要包含就可以构成一个链表。

2023-09-19 00:03:47 223

原创 libevent 定制——libevent 定制多线程

编写多线程程序的时候,在多个线程中同时访问同样的数据并不总是安全的。libevent 的结构体在多线程下通常有三种工作方式:某些结构体内在地是单线程的:同时在多个线程中使用它们总是不安全的。某些结构体具有可选的锁:可以告知 libevent 是否需要在多个线程中使用每个对象。某些结构体总是锁定的:如果 libevent 在支持锁的配置下运行,在多个线程中使用它们总是安全的。

2023-09-19 00:01:47 229

原创 ibevent 定制——libevent 定制内存分配

的替代函数,可以让 libevent 使用其他的内存管理器。当然,即使没有禁止,如果用户没有定制自己的内存分配函数,最终还是调用C语言的标准内存分配函数。首先,如果要定制自己的内存分配函数,就得在一开始配置编译libevent库是,不能加入。)就禁止用户定制自己的内存分配函数,那么就把这些宏定义为C语言标准内存分配函数。默认情况下,是没有这个选项的。这些内存分配函数是给libevent使用的,而非用户(从这些接口声明在。libevent允许用户(库的使用者)定制自己的内存分配函数。定制内存函数的声明在。

2023-09-18 23:59:22 91

原创 libevent 定制——libevent定制日志函数

要覆盖 libevent 的日志行为,编写匹配。

2023-09-18 23:58:33 94

原创 libevent 是如何支持跨平台的

libevent跨平台

2023-09-18 23:56:23 121

原创 libevent学习——Reactor模式

libevent之reactor模式

2023-09-18 23:55:09 168

原创 libevent 头文件分析

libevent头文件简单分析

2023-09-18 23:51:16 212 1

原创 clang-format配置

【代码】clang-format配置。

2023-03-26 23:07:19 766 1

USB/IP - a Peripheral Bus Extension for Device Sharing over IP

USB/IP - a Peripheral Bus Extension for Device Sharing over IP

2023-01-30

USB/IP: A Transparent Device Sharing Technology over IP Network

USB/IP: A Transparent Device Sharing Technology over IP Network

2023-01-30

rpm教程(Understanding RPM Package Management Tutorial)

理解rpm包管理

2022-09-03

rpm打包手册(RPM Packaging Guide)

rpm打包手册(RPM Packaging Guide)

2022-09-03

Mathematics for Computer Science

This text explains how to use mathematical models and methods to analyze problems that arise in computer science.

2018-05-07

最优化课件

最优化讲义

2017-06-30

计算机网络课件

计算机网络 课件

2017-06-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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