
Linux系统应用开发
文章平均质量分 89
Linux系统应用开发
Sunlight_777
推荐优质博主:https://edu.subingwen.cn/
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
第六章 QT基础:9、Qt中数据库的操作
Qt框架中对数据库操作提供了很好的支持,我们可以通过Qt提供的类非常方便地和本地或者远程数据库进行连接。众所周知,数据库是 C-S(client-server)结构的,我们要连接的数据库属于服务器端,通过Qt编写的应用程序属于客户端。如果想通过Qt访问数据库,首先我们需要在项目中添加数据库模块,模块名为sql。找到项目文件xxx.pro💡 这个sql模块对应的是一个动态库,包含数据库相关类的二进制源码。使用时会被加载到内存中,按需提供服务。:添加/删除/复制/关闭数据库实例QSqlQuery。原创 2025-04-30 15:54:21 · 1158 阅读 · 0 评论 -
第六章 QT基础:8、Qt中线程池的使用
线程池事先创建好一定数量的线程(工作线程)新任务来了,不创建新线程,而是把任务交给已有的线程来执行任务完成后,线程不销毁,而是回到池中,等待下一个任务大幅减少了线程创建销毁的开销,提高了程序性能//继承QObject和QRunnable(多继承)//必须继承QObject,才能使用信号槽机制Q_OBJECTpublic:// 任务完成后自动销毁~MyWork();// 重写run(),任务逻辑写这里✅ 继承QObjectQRunnable,可以发送信号、响应槽,功能更强!比较项。原创 2025-04-29 16:04:46 · 1045 阅读 · 0 评论 -
第六章 QT基础:7、Qt中多线程的使用
技术点说明QThreadQObject实现真正的工作线程架构将工作对象迁移到线程中信号槽机制主线程与子线程通信(线程安全)UI线程与逻辑分离不阻塞界面,提升用户体验线程安全UI更新使用信号更新界面,避免子线程直接操作控件。原创 2025-04-29 16:01:46 · 1061 阅读 · 0 评论 -
第六章 QT基础-QT内容补充:2、Qt中按钮类型的控件
父节点(Parent Node)ui->wives,它的状态会根据子节点(如等)的选择情况自动变化。子节点(Child Nodes)等复选框,它们的状态变化会触发父节点状态的更新。是连接子节点的状态变化到父节点的机制,确保父节点的状态能反映子节点的选择情况。转载 2025-04-26 21:54:15 · 69 阅读 · 0 评论 -
第六章 QT基础:6、QT的Qt 时钟编程
以下代码实现了一个具有显示当前时间、启动计时、停止计时、重置计时和记录时间段功能的时钟。原创 2025-04-24 15:23:06 · 1222 阅读 · 0 评论 -
第六章 QT基础:4、QT的TCP网络编程
TCP(Transmission Control Protocol)是一种面向连接的可靠通信协议,主要特性如下:NOTE]三次握手建立连接可靠传输:顺序、无丢包面向流:数据无结构边界适用场景:聊天、网页、文件传输Qt 中的 TCP 通信机制与基本原理QTcpServer 如何监听 + 接收连接 + 获取 QTcpSocketQTcpSocket 如何连接服务器 + 发送接收数据C++ 构造函数、QObject 父子机制、信号槽绑定细节。原创 2025-04-23 20:51:03 · 750 阅读 · 0 评论 -
第六章 QT基础:2、编程基础及串口助手案例
在QT中,GPIO(通用输入输出)通常通过操作底层硬件接口来进行控制,例如通过/dev/下的文件进行输入输出。在QT中并没有直接的GPIO模块,因此通常需要借助底层操作系统的接口进行GPIO编程。QT的串口编程使用QtSerialPort模块,它提供了对串口设备的支持,使得应用程序能够方便地与硬件设备通过串口进行通信。QT支持多种网络协议的编程,主要使用 QTcpSocket 和 QTcpServer 类来进行TCP协议的编程。:包括串口号选择、波特率选择、数据位选择、校验位选择、停止位选择等。原创 2025-04-22 19:24:28 · 621 阅读 · 0 评论 -
第六章 QT基础:1、入门操作:文件操作与信号槽机制笔记
使用connect()函数显式连接信号与槽。sender:发出信号的对象(如按钮):信号名称receiver:接收信号的对象slotName():响应函数名称。原创 2025-04-22 16:46:51 · 849 阅读 · 0 评论 -
第五章 SQLite数据库:5、SQLite 进阶用法: SQLite 安全问题(如注入防护)、性能分析(EXPLAIN)、数据库维护(VACUUM)、时间处理到常用函数等及SQLite 综合使用案例
SQL 注入是指攻击者通过构造恶意输入,将恶意 SQL 语句插入查询中,从而对数据库执行非预期操作。原创 2025-04-20 15:24:51 · 639 阅读 · 0 评论 -
第五章 SQLite数据库:5、SQLite 进阶用法:ALTER 命令、TRUNCATE 操作、视图创建、事务控制和子查询的操作
SQLite 的命令允许在不完全重建表的情况下修改现有的表结构。通过 ALTER TABLE,您可以执行如重命名表名、添加新列等操作,但无法执行复杂的修改,如删除列或修改列的数据类型。原创 2025-04-20 14:56:39 · 1505 阅读 · 0 评论 -
第五章 SQLite数据库:5、SQLite 进阶用法:JOIN、UNION、TRIGGER、INDEX、ALIAS、INDEXED BY 等模块
采用“图书借阅系统”作为示例模型,涵盖 JOIN、UNION、TRIGGER、INDEX、ALIAS、INDEXED BY 等模块,旨在帮助读者全面理解 SQL 编程逻辑与底层原理,提升数据建模与查询优化能力。原创 2025-04-18 11:19:37 · 767 阅读 · 0 评论 -
第五章 SQLite数据库:3、SQLite 常用语法及使用案例
SQLite 提供了 SQL 操作和表达式,支持对数据进行插入、选择、更新、删除和多种数学、逻辑、位运算等操作原创 2025-04-17 18:50:06 · 1373 阅读 · 0 评论 -
第五章 SQLite数据库:2、SQLite 数据类型及数据库、附加库及表等基本操作
SQLiSQLite 数据类型是一个用来指定任何对象的数据类型的属性。SQLite 中的每一列,每个变量和表达式都有相关的数据类型。原创 2025-04-15 22:04:15 · 972 阅读 · 0 评论 -
第五章 SQLite数据库:1、SQLite 基础语法及使用案例
功能模块使用语法数据结构定义CHECK数据操作INSERTSELECTUPDATEDELETE查询优化INDEXGROUP BYORDER BY查询进阶JOINVIEWSUBQUERYEXISTS数据一致性COMMITROLLBACK。原创 2025-04-15 10:55:47 · 1243 阅读 · 0 评论 -
第四章 Linux套接字通信:12.UDP特性之组播(多播)
组播也可以称之为多播这也是UDP的特性之一原创 2025-04-15 10:52:53 · 1243 阅读 · 0 评论 -
第四章 Linux套接字通信:11.UDP特性之广播
广播的UDP的特性之一,通过广播可以向子网中多台计算机发送消息,并且子网中所有的计算机都可以接收到发送方发送的消息,每个广播消息都包含一个特殊的IP地址,这个IP中子网内主机标志部分的二进制全部为1 (即点分十进制IP的最后一部分是255)。点分十进制的IP地址每一部分是1字节,最大值为255,比如:192.168.1.100广播分为两端,即数据发送端和数据接收端,通过广播的方式发送数据,发送端和接收端的关系是 1:NUDP的广播和日常生活中的广播是一样的,都是一种快速传播消息的方式,因此广播的开销很小,发原创 2025-04-14 13:47:19 · 595 阅读 · 0 评论 -
第四章 Linux套接字通信:10.基于UDP的套接字通信
udp是一个面向无连接的,不安全的,报式传输层协议,udp的通信过程默认也是阻塞的。原创 2025-04-14 13:43:16 · 1166 阅读 · 0 评论 -
第四章 Linux套接字通信:9.IO多路转接(复用)之epoll
epoll 全称 eventpoll,是 linux 内核实现IO多路转接/复用(IO multiplexing)的一个实现。O多路转接的意思是在一个操作里同时监听多个输入输出源,在其中一个或多个输入输出源可用的时候返回,然后对其的进行读写操作。原创 2025-04-13 14:46:22 · 1085 阅读 · 0 评论 -
第四章 Linux套接字通信:8.IO多路转接(复用)之poll
poll的机制与select类似,与select在本质上没有多大差别,使用方法也类似原创 2025-04-13 14:45:01 · 741 阅读 · 0 评论 -
第四章 Linux套接字通信:7. IO多路转接(复用)
IO多路转接也称为IO多路复用,它是一种网络通信的手段(机制),通过这种方式可以同时监测多个文件描述符并且这个过程是阻塞的,一旦检测到有文件描述符就绪( 可以读数据或者可以写数据)程序的阻塞就会被解除,之后就可以基于这些(一个或多个)就绪的文件描述符进行通信了原创 2025-04-13 14:42:44 · 600 阅读 · 0 评论 -
第一章 Linux下的C语言开发
gcc的-c参数可以将汇编代码转换为机器码,还可以直接将C语 言源文件转换为机器码,gcc -c main.c就是第二种用法,这里省略了-o main.o。- 静态链接:将所有目标文件和所需的库在编译时一并打包进最终的可执行文件(包括C标准库 (libc)、数学库(libm)和其他任何通过代码引用的外部库。> ① 方式一 gcc main.o hello.o -o main 没有添加-static关键字,**gcc默认执行动态链接**,即glibc库文件没有包含到可执 行文件中。原创 2025-04-07 11:46:16 · 377 阅读 · 0 评论 -
第三章 Linux进程线程:7.守护进程
守护进程(Daemon Process),也就是通常说的 Daemon 进程(精灵进程),是 Linux 中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。一般采用以d结尾的名字。原创 2025-04-08 14:16:06 · 442 阅读 · 0 评论 -
第四章 Linux套接字通信:3. TCP状态转换、端口复用
在TCP进行三次握手,或者四次挥手的过程中,通信的服务器和客户端内部会发送状态上的变化原创 2025-04-10 10:04:50 · 1059 阅读 · 0 评论 -
阻塞 IO和非阻塞IO
阻塞 I/O 是指在执行 I/O 操作时,进程会被挂起(阻塞),直到 I/O 操作完成。原创 2025-04-10 20:26:14 · 754 阅读 · 0 评论 -
第四章 Linux套接字通信:5.TCP数据粘包的处理
套接字通信是TCP是传输层协议,是一个面向连接的、安全的、流式传输协议。原创 2025-04-11 09:54:15 · 842 阅读 · 0 评论 -
第二章 Linux的文件I/O系统
在Linux系统中,当我们打开或创建一个文件(或套接字)时,操作系统会提供一个 文件描述符(File Descriptor,FD)在Linux 中,文件描述符0、1、2是有特殊含义的。➢ 0是标准输入(stdin)的文件描述符➢ 1是标准输出(stdout)的文件描述符➢ 2是标准错误(stderr)的文件描述符。转载 2025-04-07 12:10:28 · 815 阅读 · 0 评论 -
第三章 Linux进程线程:5.消息队列
消息队列原创 2025-04-07 21:59:46 · 836 阅读 · 0 评论 -
第三章 Linux进程线程:9.线程同步:互斥锁、信号量、条件变量
进程间与线程间通信- 通常用于进程间通信的方式,也可以用于线程间通信。- 信号量不仅适用于进程间同步,还可以用于线程间同步。无名信号量与有名信号量有名信号量:通过唯一的信号量名称标识,在操作系统中有唯一标识,适用于进程间通信。无名信号量:用于进程间通信时,信号量必须存储在共享的内存区域内,进程通过内存地址直接访问这些信号量。二进制信号量与计数信号量二进制信号量:用于互斥,通常充当互斥锁,确保资源的互斥访问。计数信号量:用于控制进程或线程的执行顺序,值的范围可以大于1,用于协调多个进程的顺序。原创 2025-04-08 15:38:50 · 862 阅读 · 0 评论 -
第四章 Linux套接字通信:2.TCP协议
TCP协议是一个安全的、面向连接的、流式传输协议原创 2025-04-08 20:13:27 · 712 阅读 · 0 评论 -
第四章 Linux套接字通信:4.服务器并发
在TCP通信过程中,服务器端启动之后可以同时和多个客户端建立连接,并进行网络通信,但是在介绍TCP通信流程的时候,提供的服务器代码却不能完成这样的需求原创 2025-04-10 13:28:43 · 758 阅读 · 0 评论 -
第三章 Linux进程线程:6.信号
Linux中的信号是一种消息处理机制,信号也可以实现进程间通信转载 2025-04-08 14:03:59 · 431 阅读 · 0 评论 -
第三章 Linux进程线程:4.共享内存
共享内存不同于内存映射区,它不属于任何进程,并且不受进程生命周期的影响。转载 2025-04-07 21:39:35 · 645 阅读 · 0 评论 -
第三章 Linux进程线程:2.管道
参数说明fd文件描述符,指定要操作的文件、管道或套接字。cmd操作命令,决定fcntl执行的操作。例如:F_GETFL:获取文件状态标志(如O_NONBLOCKF_SETFL:设置文件状态标志。F_GETFDF_SETFD:获取/设置文件描述符标志(如FD_CLOEXECF_GETOWNF_SETOWN:获取/设置文件的所有者(用于异步 I/O)。F_GETLKF_SETLKF_SETLKW:文件锁定控制。arg。转载 2025-04-07 17:37:22 · 654 阅读 · 0 评论 -
第四章 Linux套接字通信:基础信息补充
Socket(套接字)是应用程序通过网络进行通信的端点。不同类型的 Socket,决定了它的传输协议、通信方式、使用场景等。原创 2025-04-10 10:06:53 · 581 阅读 · 0 评论 -
第三章 Linux进程线程:8.线程概述
进程是资源分配的最小单位,线程是操作系统调度执行的最小单位。转载 2025-04-08 11:23:31 · 599 阅读 · 0 评论 -
第三章 Linux进程线程:10.C语言线程池
线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。原创 2025-04-08 16:26:08 · 666 阅读 · 0 评论 -
第三章 Linux进程线程:1.进程控制
进程控制并且只占用磁盘上的空间,是一个静态的概念。被执行之后的程序叫做进程,不占用磁盘空间,需要消耗系统的内存,CPU资源,每个运行的进程的都对应一个属于自己的虚拟地址空间,这是一个动态的概念NoteAPI(Application Programming Interface,应用程序编程接口)是一组规则、定义和协议,允许不同的软件程序之间进行交互和通信。转载 2025-04-07 12:19:29 · 666 阅读 · 0 评论 -
第三章 Linux进程线程:3. 内存映射
如果想要实现进程间通信,可以通过函数创建一块内存映射区,和管道不同的是管道对应的内存空间在内核中,而内存映射区对应的内存空间在进程的用户区(用于加载动态库的那个区域),也就是说进程间通信使用的内存映射区不是一块,而是在每个进程内部都有一块。转载 2025-04-07 20:21:43 · 458 阅读 · 0 评论 -
第四章 Linux套接字通信:1.套接字通信基础
Socket套接字由远景研究规划局(Advanced Research Projects Agency, ARPA)资助加里福尼亚大学伯克利分校的一个研究组研发。原创 2025-04-08 19:48:34 · 632 阅读 · 0 评论 -
第三章 Linux进程线程:线程进程总结
定义:父进程先于子进程退出,子进程成为 孤儿进程,此时 进程(PID=1)会接管它,并回收其资源。孤儿进程的影响:总结 问题 定义 影响 预防与处理 僵尸进程 子进程退出但父进程未 ,导致进程表项未释放 占用 PID 资源,可能导致新进程无法创建 - 或 处理子进程 - 绑定 信号处理函数 - (Linux) 孤儿进程 父进程先于子进程退出,子进程由 进程接管 影响较小,但可能原创 2025-04-08 16:38:36 · 691 阅读 · 0 评论