- 博客(15)
- 资源 (2)
- 收藏
- 关注
原创 Qt5.12自定义QSqltablemodel。
针对有我们想显示数据库中的其中几列并不需要全不显示,所以根据源码自定义我们自己的selectstatement函数 源码路径:C:\Qt\Qt5.12.1\5.12.1\Src\qtbase\src\sql\models
2021-06-08 16:31:08
995
原创 Linux多线程开发--线程概念描述
线程基本概念: LWP : light weight process 轻量级进程,本质仍是线程(在linux环境下,因为本身linux进程管理就很完善了,与windows环境下,两者线程原理完全不一样) 进程: 独立地址空间,拥有PCB 线程:也有PCB,但没有独立的地址空间(共享) 区别:在于是否共享地址空间。 Linux下: 线程:最小的执行单位。 进程: 最小分配资源单位,可以看成只有一个线程的进程。 如图所示简单的PCB构成: Linux内核线...
2021-01-05 22:16:00
189
原创 linux信号机制
大纲: 信号概念 基本属性 信号四要素 产生信号五种 kill函数 alarm函数 setitimer函数 是alarm进化版 可以精确定时 信号集操作函数 信号屏蔽字 未决信号集 信号的捕捉 注册信号捕捉函数 sigaction函数(重点) 信号的机制: 信号原理类似时钟中断。A给B发送信号,当B收到信号之后,不管执行到什么位置,都要暂停去处理信号,处理完毕再去继续执行,与硬件中断类似,异步模式,但是信号是软件层面上的中断,早期常被叫做软中断,所有具有很强的..
2021-01-01 22:36:28
236
1
原创 Linux 无血缘关系进程通信
实质上mmap是内核借助文件帮我们创建了一个映射区,多个进程之间利用该映射区完成数据传递,由于内核空间多进程共享,因此无血缘关系的进程之间,也可以使用mmap来进行通信,只要设置相应的标记位flag即可。标记位使用MAP_SHARED. 实例代码: 写入进程代码: #include<sys/types.h> #include<fcntl.h> #include<unistd.h> #include<stdlib.h> #include<s.
2021-01-01 16:05:34
621
原创 Linux进程通信 mmap_父子进程间通信
三个硬链接 指向同一个inode,文件删除的 unlink的时候 实际上删除的是这三个目录项的其中一个,文件实际并没有删除, 文件要删除只有等到,该机器所有占用该磁盘文件的进程结束才可以。 MAP_PRIVATE:(私有映射) 父子进程各自独占映射区 MAP_SHARED:(共享映射) 父子进程共享映射区 ①父子进程共享打开的文件 ②父子进程共享mmap建立得映射区,但必须使用MAP_SHARED ...
2021-01-01 00:03:55
169
原创 Linux管道通信笔记
概述: 管道 进程通信 管道 使用最简单 信号 开销最小 共享映射区 无血缘关系 本地套接字 最稳定 难度最强 pipe 函数 未名管道 管道一般读写行为 fifo 有名管道 用于非血缘关系进程通信 共享内存 mmap 函数的参数使用注意事项 用于非血缘关系进程通信 linux 文件类型 - 文件 d 目录 l 符号链接 s 套接字 b 块设备 c 字符设备 p 管道 前三种占用磁盘存储 后四种 为 伪文件 实质是一个内核缓冲区 由两个文件描述符引用,一个表示读端,一个表示写端 规定数据..
2020-12-30 22:14:40
487
原创 Linux 下 使用 vim vi 切换manpage 手册
参考博客:https://blog.youkuaiyun.com/qq_43666528/article/details/103764417?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.contr
2020-12-30 16:07:49
714
转载 zhedapat1002
自身水平低写不出来,没把题读清 ,搞清楚各个变量的取值范围 , 但是自己写的代码可以通过他的例子, 思想就是两个集合的并集 ,就是不太明白为什么编译不过去完全过不了#include #include using namespace std; // typedef struct P { int K;//1,2,3,..,10 int e[10];//1~1000 float a[10]; }P
2017-02-26 19:50:59
238
原创 zhedapat1001
考虑几个关键点和为0 正负数即可 #include using namespace std; int main() { int a, b, i = 0; bool c(false); short t[6]; while (cin >> a >> b) { int sum = a + b; if (sum < 0)c = true; else if
2017-02-26 16:37:31
300
原创 循环队列
课程来源mooc西北大学数据结构 基本思路 取模运算 判空条件front==rear 判满条件 (rear+1)%MAXSIZE==front 队列长度 ① rear>front rear-front个 ① rear (rear-front+MAXSIZE)%MAXSIZE 综上 个数等于(rear-front+MAXSIZE)%MAXSIZE typedef
2017-02-01 01:41:42
215
原创 链队列基本操作
typedef struct QueueNode { int data; struct QueueNode *next; }QueueNode,*PQueueNode; typedef struct QueueL { PQueueNode front;//Queue head 头部 PQueueNode rear;//Queue rear 尾部 }Queue,*PQueue; void
2017-01-31 17:12:47
340
原创 栈的应用----括号匹配问题
借鉴于MOOC西北大学数据结构视频参考 typedef struct Stack { char ch; Stack* next; }Stack,*PStack; 单向链式存储结构 void PushStack(PStack stack, char* str) //左括号入栈 { PStack Top = new Stack; Top->ch = *str; Top->
2017-01-24 18:23:07
354
原创 顺序存储的双栈共享
来源mooc西北大学视频教程 一 建栈操作 #define SMax 10 typedef struct Stack { int Data[SMax]; int Top[2]; }Stack,*PStack; Data栈存储数据域,SMax是共享栈的大小,Top[0]是底栈栈顶指针,Top[1]是顶栈栈顶指针。 二 初始化栈。 void StackInit(PStack
2017-01-22 15:50:53
459
原创 链表应用----二进制数加1进位表示链表存储
问题描述:建立一个带头结点的线性链表,用以存放输入的二进制数, 链表的每一个data域存放一个二进制位,并在此链表上实现对二进制数加1的运算。 问题分析如图:
2017-01-19 21:38:26
996
原创 链表------------------单向链表的建立跟遍历
单向链表的建立与遍历 typedef struct Snode { int data; Snode *next; }Snode,*PSnode; void CreateList(PSnode &head) { int n; PSnode p,q; head=new Snode; head->data = 0; head->next = NULL;//Initial node
2017-01-19 20:43:55
310
oepngl第九版源码加环境配置 vs2017
2018-03-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人