- 博客(12)
- 收藏
- 关注
原创 Python的特殊“主函数”
是 Python 的一个内置变量,用于表示「当前模块的名称」。如果脚本是被「导入到其他脚本中」,则不执行该代码块。的意思是:「如果当前脚本是被直接运行的,则执行下面的代码。,如果是,则执行缩进块内的代码(比如这里的。(脚本文件名),条件不成立,假设你的脚本文件名为。
2025-10-21 23:09:49
222
原创 System V消息队列与POSIX消息队列
函数的的oflag类似有 O_RDONLY、O_RDWR, O_WRONLY,除此之外还有 O_CREAT、O_EXCL(如果 O_CREAT 指定,但 name 不存在,就返回错误),O_NONBLOCK(以非阻塞方式打开消息队列,在正常情况下 mq_receive和mq_send 函数会阻塞的地方,使用该标志打开的消息队列会返回 EAGAIN 错误)。通过设置用int mq_notify(),当消息队列从空变为非空 时,已注册的进程将收到一个信号或触发一个回调函数,以异步地通知该进程。
2025-10-21 23:09:03
996
原创 Linux设备驱动文件
在Linux系统中,“设备驱动文件”的概念可能涉及两个方面:一是内核模块文件(实际驱动代码),二是设备文件节点(如字符设备或块设备文件)。
2025-10-16 19:49:23
512
原创 STL底层实现
迭代器是用于遍历和操作容器中的元素的工具。)是一种分段连续的存储结构,每段数据空间内部是连续的,但各段之间不一定连续。它的特点是支持快速的随机访问,但在插入和删除元素时效率较低,尤其是在中间位置。是C++标准库的一部分,提供了一组通用的模板类和函数,用于数据结构和算法的实现。STL的空间配置器分为第一级配置器和第二级配置器。需要扩容时,会分配一个新的空间,其大小是原来空间的两倍,然后将元素复制到新空间,并释放旧空间。先进后出,它只有一个出口,栈中只有顶端元素才可以被外界访问到,因此栈不允许有遍历行为。
2025-10-16 19:48:09
210
原创 TCP 心跳机制解决Socket异常断开问题
摘要:Socket客户端异常断开分为可通知和不可通知两种情况,后者会导致服务器资源浪费。通过TCP心跳包机制可有效检测连接状态,类似看门狗机制。Linux系统支持通过sysctl命令配置TCPKeepAlive参数(时间间隔、探测次数等)。C语言实现中,可通过setsockopt设置SO_KEEPALIVE选项及相关参数(TCP_KEEPIDLE、TCP_KEEPCNT等)来启用和定制心跳包功能,从而及时检测连接异常。
2025-09-26 19:03:54
478
原创 Makefile规则
本文介绍了Makefile的基本语法规则和常用功能,包括: 基本规则结构:target-prerequisites-command 伪目标(.PHONY)的使用 四种变量赋值方式(= := ?= +=)和特殊变量($@ $^ $<) 注释和换行符的使用 常用函数:wildcard、shell、patsubst、subst等文件操作函数 条件判断语句(ifeq/ifneq/ifdef/ifndef) 示例演示了如何利用这些功能构建C项目,包括编译、目录操作等 文章通过具体示例展示了Makefile在项目
2025-09-26 19:01:31
640
原创 Linux上使用SQLite
轻量化,易用的嵌入式数据库,用于设备端的数据管理,可以理解成单点的数据库。传统服务器型数据库用于管理多端设备,更加复杂.SQLite是一个无服务器的数据库,是自包含的。这也称为嵌入式数据库,这意味着数据库引擎作为应用程序的一部分运行。MySQL需要运行服务器,MySQL将需要客户端和服务器架构通过网络进行交互。基于嵌入式的数据库主要有:SQLite,Firebird,Berkeley DB,eXtremeDBFirebird 是关系型数据库,功能强大,支持存储过程,SQL兼容等。
2025-09-14 19:38:59
885
原创 Linux的热拔插udev机制控制手机设备
简介: udev是一个设备管理工具,udev以守护进程的形式运行,通过侦听内核发出来的uevent来管 理/dev目录下的设备文件。udev在用户空间运行,而不在内核空间 运行。它能够根据系统中的硬 件设备的状态动态更新设备文件,包括设备文件的创建,删除等。使用udev后,在/dev目录下就只包含系统中真正存在的设备。手机接入Linux系统时,最先知道设备插入的是内核,内核给udev发送uevent信号,udev监听到内核发出的信号后为接入的手机创建设备文件,这样adb指令才能通过设备文件访问手机。
2025-09-11 16:04:56
209
原创 finalshell不通过IP地址,通过主机名连接Linux操作系统
主机的IP地址和主机名根据自己的来,主机名可以在linux操作系统上通过hostname命令查看, 然后点击文件->保存就可以了。finalshell连接linux也是通过ip地址连接,所以我们可以在Windows操作系统的地址记录本上做IP地址与主机名的映射。步骤:以管理员的方式运行记事本,点击文件->打开,根据上面的文件路径选择文件。注意在etc目录下可能看不到文件,选择所有文件,hosts文件就出来了。Linux地址本:/etc/hosts。保存之后就可以尝试连接。
2025-06-13 16:30:34
559
原创 finalshell连接ubuntu一直跳输入密码
两个虚拟网卡没问题,IP地址正确,防火墙关闭,找了3个小时的教程还没解决。我一直以为锁屏的名字是用户名,原来不是。桌面home目录的名字才是用户名。命令查看ssh服务状态发现是finalshell中的用户名输错了。将名字更改之后终于连上了。
2025-06-09 17:09:42
518
原创 用QT做串口调试助手项目,使用虚拟串口时出现readyread信号无法触发问题
使用虚拟串口需要配置两个端口,且发送端和接收端的波特率、数据位、校验位、停止位必须完全一致。Break line/Restore connection这一行不能勾选。在构造函数中初始化两个端口,连接信号与槽函数。确认两个串口能正常打开后,我们打开虚拟串口。//别忘记在.h文件中声明两个对象。//接收端收到端信息触发槽函数。然后我们就能实现正常数据发送与接受了。两个端口配置代码过长我就不展示了。
2025-05-12 19:48:34
727
原创 Qt中实现控件和布局随窗口大小改变而改变的灵活布局
然后在widget.cpp文件中,将最大的布局gridLayoutGlobal应用到主窗口实现灵活布局。问题描述:做好控件和布局后,运行程序,发现改变窗口大小时,里面的控件不能灵活增大增小。首先将所有的控件都设置布局。
2025-05-08 00:00:55
1179
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅