摘要:
目录编写linux驱动程序背景基本步骤一、建立Linux驱动框架(装载、卸载Linux驱动)二、注册和注销设备文件三、指定驱动相关信息四、指定回调函数五、编写业务逻辑六、编写Makefile文件七、编译Linux驱动程序八、安装和卸载Linux驱动hello world编译加载hello_world
阅读全文
posted @ 2023-11-05 22:53
main_c
阅读(3)
推荐(0)
摘要:
time-test例子 第一个例子位于libevent源码libevent-2.1.12-stable/sample/time-test.c下面,是一个超时事件回调。 int main(int argc, char **argv) { struct event timeout; struct tim
阅读全文
posted @ 2023-10-11 00:14
main_c
阅读(1)
推荐(0)
摘要:
辅助类型和函数 目录基本类型evutil_socket_t标准整数类型各种兼容性类型定时器可移植函数套接字 API 兼容性可移植的字符串操作函数区域无关的字符串操作函数IPv6辅助和兼容性函数结构体可移植性函数安全随机数发生器 <event2/util.h>定义了很多在实现可移植应用时有用的函数,
阅读全文
posted @ 2023-09-26 01:21
main_c
阅读(1)
推荐(0)
摘要:
事件event 目录创建事件生成新事件事件标志关于事件持久性只有超时的事件信号事件设置不使用堆分配的事件事件的未决和非未决设置未决事件设置非未决事件事件的优先级检查事件状态获取当前运行事件一次触发事件手动激活事件优化公用超时从已清除的内存识别事件事件状态之间的转换 libevent 的基本操作单元是
阅读全文
posted @ 2023-09-26 01:11
main_c
阅读(1)
推荐(0)
摘要:
事件循环event_loop 目录运行循环停止循环时间缓存转储event_base的状态 运行循环 一旦有了一个已经注册了某些事件的 event_base, 就需要让 libevent 等待事件并且通知事件的发生。 /** @name Loop flags These flags control t
阅读全文
posted @ 2023-09-26 00:48
main_c
阅读(0)
推荐(0)
摘要:
TODO qemu-tcmu @目录qemu-tcmu背景qemutcmutcmu-runnerqemu-tcmu环境源码编译代码结构参考 背景 qemu tcmu tcmu-runner qemu-tcmu 环境 源码 编译 代码结构 参考 [Qemu-devel] [PATCH] tcmu: I
阅读全文
posted @ 2023-09-19 00:13
main_c
阅读(2)
推荐(0)
摘要:
event_base 使用 libevent 函数之前需要分配一个或者多个 event_base 结构体。每个event_base 结构 体持有一个事件集合,可以检测以确定哪个事件是激活的。 如果设置 event_base 使用锁,则可以安全地在多个线程中访问它 。然而,其事件循环只能 运行在一个线
阅读全文
posted @ 2023-09-19 00:05
main_c
阅读(1)
推荐(0)
摘要:
TAILQ_结构体 TAILQ_结构体在文件event2/event_struct.h和文件event2/keyvalq_struct.h中都有定义,并且他们的定义都是一样的,定义了TAILQ_ENTRY、TAILQ_HEAD结构体: #ifndef TAILQ_ENTRY #define EVEN
阅读全文
posted @ 2023-09-19 00:04
main_c
阅读(1)
推荐(0)
摘要:
libevent 定制多线程 目录libevent 定制多线程开启多线程定制多线程调试锁的使用 编写多线程程序的时候,在多个线程中同时访问同样的数据并不总是安全的。 libevent 的结构体在多线程下通常有三种工作方式: 某些结构体内在地是单线程的:同时在多个线程中使用它们总是不安全的。 某些结构
阅读全文
posted @ 2023-09-19 00:02
main_c
阅读(1)
推荐(0)
摘要:
libevent 定制内存分配 默认情况下,libevent 使用 C 库的内存管理函数在堆上分配内存。通过提供 malloc、realloc和 free 的替代函数,可以让 libevent 使用其他的内存管理器。希望 libevent 使用一个更高效的分配器时;或者希望 libevent 使用一
阅读全文
posted @ 2023-09-18 23:59
main_c
阅读(0)
推荐(0)
摘要:
libevent 定制日志函数 libevent在默认情况下,会将日志信息输出到终端上。这当然就不利于日后的观察。为此,libevent允许用户定制自己的日志回调函数。所有的日志函数在最后输出信息时,都会调用日志回调函数的。所以用户可以通过定制自己的日志回调函数(在回调函数中把信息输出到一个文件上)
阅读全文
posted @ 2023-09-18 23:59
main_c
阅读(1)
推荐(0)
摘要:
libevent 是如何支持跨平台的 它的跨平台表现在: 支持Windows、Linux、*BSD和Mac Os; 支持多种I/O多路复用技术, epoll、poll、dev/poll、select和kqueue等; 在include/event2/util.h下面定义了一堆条件包含,它会根据特定和
阅读全文
posted @ 2023-09-18 23:56
main_c
阅读(1)
推荐(0)
摘要:
Reactor模式 Reator的事件处理机制 Reactor翻译为“反应堆”,是一种事件驱动机制。该机制和普通函数调用的不同在于:应用程序不是主动调用某个API完成处理,相反,Reactor逆置了事件处理流程,应用程序需要提供相应的接口并注册到Reactor上,吐过相应的事件发生,Reactor将
阅读全文
posted @ 2023-09-18 23:55
main_c
阅读(2)
推荐(0)
摘要:
libevent 头文件分析 目录libevent 头文件分析libevent核心头文件头文件简单解读event2/event.hevent2/event_struct.hevent2/event_compact.hevent2/thread.hevent2/buffer.hevent2/buffe
阅读全文
posted @ 2023-09-18 23:51
main_c
阅读(1)
推荐(0)
摘要:
一个可视化clang-format网站:https://clang-format-configurator.site/ # https://clang.llvm.org/docs/ClangFormatStyleOptions.html # https://www.bbsmax.com/A/VGzl
阅读全文
posted @ 2023-03-26 23:07
main_c
阅读(10)
推荐(0)
摘要:
C++的各种初始化 目录C++的各种初始化1.默认初始化2.值初始化3.直接初始化与拷贝初始化4. 列表初始化(list initialization)/初始化器列表构造函数初始化(initializer-list constructor)5. 构造函数使用成员初始器列表初始化member init
阅读全文
posted @ 2023-03-26 23:06
main_c
阅读(2)
推荐(0)
摘要:
背景 libevent libevent – an event notification library 官方定义:libevent是一个事件通知的库。更详细的介绍参考官方的就够了,这里我摘抄一下,并做一些注释 The libevent API provides a mechanism to exe
阅读全文
posted @ 2023-02-26 14:04
main_c
阅读(13)
推荐(0)
摘要:
目录简介Doxygen的安装Doxygen的配置生成配置文件常用配置Doxygen注释头文件注释:函数的注释:Doxygen文档生成reference 简介 Doxygen 是一个流行的用于生产代码文档的工具,关于它的介绍可以参考官网:https://www.doxygen.nl/index.htm
阅读全文
posted @ 2023-02-19 16:44
main_c
阅读(9)
推荐(0)
摘要:
json简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - Dece
阅读全文
posted @ 2023-02-19 16:06
main_c
阅读(1)
推荐(0)
摘要:
libuuid UUID简介 UUID含义是通用唯一识别码(Universally Unique Identifier),这 是一个软件建构的标准,也是被开源软件基金会 (Open Software Foundation, OSF) 的组织应用在分布式计算环境 (Distributed Comput
阅读全文
posted @ 2023-02-12 22:48
main_c
阅读(2)
推荐(0)
摘要:
USBIP USB/IP 是一个开源项目,已合入 Kernel,在 Linux 环境下可以通过使用 USB/IP 远程共享 USB 设备。 USB Client:使用USB的终端,将server共享的usb设备挂载到本地。 USB Server:分享本地的usb设备至远程。 USBIP的架构 主要部
阅读全文
posted @ 2023-01-30 22:48
main_c
阅读(2)
推荐(0)
摘要:
nm命令介绍 nm用来列出一个目标文件中的各种符号,nm命令还是比较简单而且强大的。它用来列出一个目标文件中的各种符号。符号的种类很多,以下是一些常见的符号类型 nm输出字符 含义 R Read only symbol. 比如在代码中有一个const MAXDATA = 3095; 则MAXDATA
阅读全文
posted @ 2023-01-10 23:21
main_c
阅读(1)
推荐(0)
摘要:
QSystemTrayIcon类 QSystemTrayIcon QSystemTrayIcon是qt中专门用于处理系统托盘的类 头文件 #include qmake QT += widgets Since Qt 4.2 Inherits QObject QSystemTrayIcon 支持Wind
阅读全文
posted @ 2022-11-16 00:45
main_c
阅读(2)
推荐(0)
摘要:
工作中需要用到QT项目,依据QT的一些官方文档做一些整理。 目录Qt 编码风格 Qt Coding Style缩进 Indentation变量声明 Declaring variables空白 Whitespace括号 Braces圆括号 Parenthesesswitch 语句 Switch sta
阅读全文
posted @ 2022-11-06 22:20
main_c
阅读(11)
推荐(0)
摘要:
Linux 进程的出生 本文将以v3.10的Linux内核为例,讲述进程的出生。 Linux启动过程 Linux系统的启动过程可以分成如下图所示的5个阶段, BIOS阶段 由 BIOS 作最初的引导工作,执行加电自检、初始化,读取引导设备的主引导扇区并执行。 MBR阶段 MBR存在于可启动磁盘的0磁
阅读全文
posted @ 2022-09-06 01:19
main_c
阅读(2)
推荐(0)
摘要:
USB设备类型汇总 一、USB概述 1.USB 版本 2.USB 接口 3.USB Class Codes USB定义了设备类的类别码信息,它的功能包括:可以用来识别设备并且加载设备驱动。这种代码信息有包含Base Class([基类])、SubClass([子类])、Protocol([协议])一
阅读全文
posted @ 2022-09-06 01:03
main_c
阅读(6)
推荐(0)
摘要:
docker安装opengrok 为了更好浏览代码,尝试使用opengrok,为了简化安装和维护的步骤,决定以docker的形式安装opengrok。 参考官方文档:https://github.com/OpenGrok/docker。 安装docker环境 环境为ubuntu 参考docker官方
阅读全文
posted @ 2022-09-06 00:46
main_c
阅读(1)
推荐(0)
摘要:
网络基础知识 目录网络基础知识OSI七层模型各层之间的一些常见知识点物理层物理层设备:集线器(HUB)数据链路层数据链路层设备:交换机网络层网络层功能网络层设备:路由器ICMPPingTracert传输层熟知端口号传输层功能TCP/IP四层模型IP地址及划分网段私有IP地址特殊IP地址VLAN基础知
阅读全文
posted @ 2022-09-04 23:37
main_c
阅读(1)
推荐(0)
摘要:
交换机命令 记录下工作中经常用到的交换机命令 作用 命令 查看vlan配置 show vlan 查看交换口配置 show interface switchport 查看系统正在运行的配置信息或某个接口下的配置信息 show running-config [ interface interface ]
阅读全文
posted @ 2022-09-04 21:45
main_c
阅读(1)
推荐(0)
摘要:
shell中脚本参数传递 方式一:$0,$1,$2.. 采用$0,$1,$2..等方式获取脚本命令行传入的参数,值得注意的是,$0获取到的是脚本路径以及脚本名,后面按顺序获取参数,当参数超过10个时(包括10个),需要使用${10},${11}....才能获取到参数,但是一般很少会超过10个参数的情
阅读全文
posted @ 2022-09-04 20:34
main_c
阅读(4)
推荐(0)
摘要:
Linux GRUB配置 环境以Ubuntu 22.04为实验环境,其他版本比如fedora系列的可能会有所出入 基本概念 相关重要文件 要修改grub,请注意以下几个重要档案: /boot/grub/grub.cfg 该配置文件中包含了grub的最终设置。 注意他的开头: # # DO NOT E
阅读全文
posted @ 2022-09-02 00:24
main_c
阅读(19)
推荐(0)
摘要:
Linux文件的各种*id属性 Linux文件权限标志 Linux 文件或目录的属性主要包括:文件或目录的节点、种类、权限模式、链接数量、所归属的用户和用户组、最近访问或修改的时间等内容; root@marvin:/home/admin/workspace/test# ls -lih total 2
阅读全文
posted @ 2022-08-28 23:34
main_c
阅读(341)
推荐(0)
摘要:
虚拟化简介 目录虚拟化简介背景虚拟化概念虚拟化管理程序(Hypervisor)虚拟化指令集敏感指令集Popek&Goldberg 原理监视器对敏感指令的处理过程虚拟化类型硬件虚拟化和软件虚拟化硬件虚拟化软件虚拟化完全虚拟化和半虚拟化完全虚拟化半虚拟化Type1和Type2虚拟化虚拟化解决方案虚拟化技
阅读全文
posted @ 2022-08-28 23:34
main_c
阅读(640)
推荐(0)
摘要:
chattr设置文件只读 经常看到有些文件有写权限还是说只读,这其实是因为该文件被chattr设置成只读了 chattr可以防止关键文件被修改 在linux下,有些配置文件是不允许任何人包括root修改的,为了防止被误删除或修改,可以设定该文件的"不可修改位(immutable)"。 例如: cha
阅读全文
posted @ 2022-08-28 23:34
main_c
阅读(142)
推荐(0)
摘要:
linux时间与Windows时间不一致问题 一、几个概念 “系统时间”与“硬件时间” 系统时间: 一般说来就是我们执行 date命令看到的时间,linux系统下所有的时间调用(除了直接访问硬件时间的命令)都是使用的这个时间。 硬件时间:主板上BIOS中的时间,由主板电池供电来维持运行,系统开机时要
阅读全文
posted @ 2022-08-28 23:34
main_c
阅读(2495)
推荐(0)
摘要:
LightDM 简介 LightDM(Light Display Manager)是一个全新的轻量级 Linux 桌面显示管理器,而传统的 Ubuntu 是使用 GNOME 桌面标准的 GDM。 LightDM 是一个跨桌面显示管理器,其目的是成为 X org 的 X Server 的标准显示管理器
阅读全文
posted @ 2022-08-28 23:34
main_c
阅读(4549)
推荐(0)
摘要:
deb包的解压与重打 创建目录备用 如下所示,创建三个目录,分别为extract,extract/DEBIAN: mkdir extract mkdir extract/DEBIAN 解压data文件与控制信息 解压出包中的文件到extract目录下: $ dpkg -X strace_4.26-0
阅读全文
posted @ 2022-08-28 23:34
main_c
阅读(334)
推荐(0)
摘要:
Linux查看硬件信息 查看MCH(北桥) lspci方法 lspci | grep -i host\ bridge(只显示是那个系列的) 例如我的显示 00:00.0 Host bridge: Intel Corporation 82G33/G31/P35/P31 Express DRAM Con
阅读全文
posted @ 2022-08-28 23:34
main_c
阅读(234)
推荐(0)
摘要:
在项目中时不时会遇到因为代码文件格式不同导致的莫名问题,此时需要用dos2unix进行转换 Dos2unix软件包包括工具"dos2unix" 和 "unix2dos",用于将纯文本文件在DOS或Mac格式与Unix格式之间相互转换。 DOS/Windows的文本文件中,断行符是由两个字符共同表示的
阅读全文
posted @ 2022-08-28 23:34
main_c
阅读(614)
推荐(0)
摘要:
Linux文件的atime, mtime, ctime属性以及修改 在使用Linux服务器的过程中,经常会涉及到文件一些时间参数的处理。比如,当存储空间不够时,我们需要删除或移走一些过时的旧文件(比如业务化模式中,旧的中间文件),这时需要查看一些文件的最后修改时间(比如数值模式的namelist)。
阅读全文
posted @ 2022-08-28 23:34
main_c
阅读(1080)
推荐(0)