- 博客(30)
- 问答 (1)
- 收藏
- 关注
原创 Qt添加构建套件(根据已有的静态编译的文件,添加新的编译器)
构建与运行–Qt Version – 添加 --找到上面文件夹中的qmake(在bin目录下)添加完版本后,在构建套件(kit)选项下,新建一个构建套件,Qt版本选择刚刚创建的版本。再选择构建—然后执行qmake,qmake执行结束后,编译器就配置好了。
2023-05-18 12:10:32
1806
原创 使用select进行IO复用实现简单的服务器并发
多线程和多进程都有很大的缺点。多进程资源消耗大,在很多用户同时连接时,需要消耗很大资源来创建足够多的进程。而多进程虽然共用一个进程的资源,但是带来了同步问题IO设备复用是常用的高并发模型IO设备分时复用:一个系统平台中,IO 设备通常情况下只有一个,而如果存在多个外部主机模块与之进行输入输出通信时,则此 IO 设备会出并发竞态,但如果 IO 设备执行得够快,则可以同时与多个外部主机通信,但需要分时复用 IO 设备有多个已经连接下的客户端与正要建立连接的客户端保持与服务器的网络通信,而网卡只有一个,它们
2022-12-08 02:58:10
456
原创 extern “C“的使用
为什么要有 extern "C"在大工程中,存在C和C++混合编译,此时存在不同编译器编译出来的目标文件和库当C++工程存在C编译器编译出的目标文件时,会出现找不到对应函数的情况原因是:C编译器和C++编译器编译同一个函数时,得到汇编代码对应的函数名字是不一样的(原因是C++存在函数重载,而C不存在,C++对于函数名还多了一些前缀和后缀---"粉碎重改")
2022-10-23 02:41:10
147
原创 linux多线程
线程,又称轻量级进程,是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位,主要有以下特点1)线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源2)与同属一个进程的其它线程共享进程所拥有的全部资源3)同一进程中的多个线程之间可以并发执行4)线程间可以进行各种操作,如创建,取消,分离等等。
2022-09-29 14:49:03
174
原创 linux文件锁
其实"记录"该词并不恰当,更适合的术语可能是字节范围锁(byte-range locking),因为它锁定的只是文件中的一个区域(当然,也可能是整个文件)。由内核执行的锁,当一个文件被上锁进行写入操作时,内核将阻止其他任何文件对其进行读。b) 写入锁又称为排斥锁,在任何时刻只能有一个进程在文件的某个部分建立写入锁。a) 读取锁又称为共享锁,它能够使多个进程都能在文件的同一部分建立读取锁。例子:使用fcntl函数给文件上锁,并进行文件读写操作,当然,在文件的同一部分不能同时建立读取锁和写入锁。
2022-09-21 17:06:14
1345
原创 多进程编程
程序:存储在磁盘中的二进制文件,表示是静态进程:一个正在运行的程序的实例进程是正在运行的程序进程是一个具有独立功能的程序,是关于某个数据集合的一次运行活动是系统进行资源分配和调度的基本单位,是操作系统结构的基础是一个动态的概念,是一个活动的实体。
2022-09-19 17:24:53
1191
原创 Linux文件IO编程
在 linux 中,内核会根据不同的设备类型,封装出对应的不同的文件类型,以便顶层的应用进程快速识别底层中的设备,主要分为以下几种:d : 目录文件。
2022-09-09 00:46:53
320
原创 数据结构之红黑树
红黑树也是一种自平衡二叉查找树,它与AVL树类似,都在添加和删除的时候通过旋转操作保持二叉树的平衡,以求更高效的查询性能。与AVL树相比,红黑树牺牲了部分平衡性,以换取插入/删除操作时较少的旋转操作,整体来说性能要优于AVL树。它可以在O(log n)时间内做查找,插入和删除,这里的n 是树中元素的数目.选择以二叉树为基础,在二叉树的属性中加入一个颜色属性来表示2-3-4树中不同的节点。2-3-4树中的2节点对应着红黑树中的黑色节点,而2-3-4树中的非2节点是以红节点+黑节点的方式存在,
2022-09-07 15:36:40
267
原创 [C语言]unsigned的用法及unsigned为负数时的情况
但是,在如果给unsigned类型,如unsigned int b=-10;然后做运算,也是可行,原因是此表达式中,-10是以补码形式存入了无符号整数中;以unsigned修饰的数据类型都是无符号的,即没有负数(或者说一般不表达负数)而printf使用不同的格式符会使无符号的负数打印出正数或负数。...
2022-08-18 01:39:12
10156
原创 【c语言】typeof、_Generic关键字(实现类似C++的重载)
泛型关键字,允许使用还不确定的数据类型来定义变量。如:可以用于宏定义实现类似C++的重载函数功能。
2022-08-04 19:52:29
694
原创 【C语言】结构体、container_of获取结构体首地址、共用体、枚举
C99规定int、unsigned int和bool可以作为位域类型,但编译器几乎都对此作了扩展,允许其它类型类型的存在。1、结构体或者类的自身对齐值是其成员中自身对齐值最大的那个值。2、或者可以直接使用linux内核的container_of宏定义(头文件#include)形式:typename member:位域个数(一个字节8位)可以没有变量名,但仅作填充作用,不可引用。因为cpu对内存的读取是对齐的,如果内存不对齐,cpu需要读取两次才能读取到(需要拼接)。...
2022-08-01 18:29:40
777
原创 【makefile调用shell命令的两种方式差别】makefile:15: recipe for target ‘main.o‘ failed make: *** [main.o] Error 1
makefile:15: recipe for target 'main.o' failed make: *** [main.o] Error 1
2022-07-29 01:03:42
2210
2
原创 main函数参数的应用(使用ubuntu环境下的g++)
在ubuntu下使用g++编译器,实现在命令行输入 数量可变个参数 进行累加或求平均
2022-07-25 00:19:26
625
1
空空如也
第二个函数只是调用了第一个函数,没有增加什么代码,为什么不直接写一个函数就行
2022-08-21
不同编译器造成不同结果,要怎么处理啊?
2022-08-19
哈希33返回值的问题
2022-08-19
定义cout导致<<重载、cout.precision等出现错误,如何解决?
2022-07-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人