2 osDetach

尚未进行身份认证

只有孜孜不倦地求索,才有源源不断的收获

等级
TA的排名 4w+

Linux系统新定时器句柄timerfd的使用

主要数据结构struct timespec { time_t tv_sec; /* Seconds */ long tv_nsec; /* 纳秒级别 */};struct itimerspec { struct timespec it_interval; /* 间隔时间*/ struct timespec it...

2020-02-04 00:12:05

c++ 函数对象的使用

函数对象就是像使用函数一样适用对象。比如:一个比较大小的类#include <iostream>using namespace std ;class A{ public ...

2020-01-30 00:03:25

一个文本管控客户端的实现

【管控客户端第2版】 项目概况背景项目来源:2019 深度软件开发大赛项目名称:文件管控客户端运行环境deepin Linux x86_64 系统,理论上也兼容其他 x86_64 Linux 系统条件与限制区分服务端与客户端,一般运行在不同的机器上正式的运行环境是N(N>=2)台计算机节点,通过有线或者无线互联,且运行服务端机器有客户...

2020-01-19 19:26:30

epoll+fanotify实现监控目录以及子目录

只说下坑点:调用fanotify_mark的时候,传文件的绝对路径,这时候使其忽略AT_FDCWD标志设置。一些功能描述在之前的博客中已经总结!源代码,欢迎Star或Fork...

2020-01-17 01:04:53

文件监控机制fanotify学习总结

fanotify是Linux平台上新出现的一种文件监控技术,常被用作杀毒软件或者病毒程序恶意访问控制。之前有听过或使用过inotify的,都知道inotify是相比于fanotify更早的文件操作事件监控技术,fanotify是新出来的,实现的功能不比inotify多,但是他提供的对于监控文件的事件比较重要的功能权限检查和访问控制而inotify没有提供,所以这一点优势是其能存在的原因。fani...

2020-01-16 13:09:12

javaWeb学习

MVC一种将业务逻辑、数据、界面分离的方法组织代码的框架,在改进界面及用户交互的同时,不用重写业务逻辑,MVC将传统输入与输出和处理进行了分离。MVC设计模式的优点:为了实现显示和数据的分离在M和V上加了一层C,用户在V上只能通过C来实现对M的操作,一旦M有更新,M就会通知V视图更新。用户通过对事件的操作,可以触发视图的各种事件,通过控制器,以达到更新模型或数据的目的。为什么要使用框架开发?...

2020-01-07 14:21:30

字符串是否由子串拼接

#include <iostream>#include <string>using namespace std ;int main() { string ss ; cin >> ss ; string tmp ="" ; int len = ss.size() ; int flag = 0 ; for(in...

2019-12-30 18:59:22

字符串匹配

牛牛有两个字符串A和B,其中A串是一个01串,B串中除了可能有0和1,还可能有'?',B中的'?'可以确定为0或者1。 寻找一个字符串T是否在字符串S中出现的过程,称为字符串匹配。牛牛现在考虑所有可能的字符串B,有多少种可以在字符串A中完成匹配。 例如:A = "00010001", B = "??" 字符串B可能的字符串是"00","01","10","11",只有"11"没有出现在字符串A...

2019-12-22 16:05:32

加速页表过程管理

虚拟内存的思想:每个进程都拥有自己的虚拟地址空间,这个空间被分割成多个块,每个块被称为一个页或者页面,每一页有连续的地址范围。这些也被映射到物理内存,但并不是所有的页面都在内存中,才能运行程序的,当程序引用到一部分在物理内存中地址空间时,有硬件执行必要的映射,当程序引用到一部分不在物理内存中的地址空间的时候,由操作系统负责将缺失的部分装入到内存并重新执行失败的指令。加速分页过程在任何分页系统中...

2019-12-21 12:08:58

贪吃的小Q

#include <iostream>using namespace std ;//贪吃的小qint main() { int m, n ; int mid, now ; int temp ; int ok = 0 ; cin >> n >> m ; int l=1, r=m ; while(l !=...

2019-12-20 22:06:56

c++11实现红黑树

红黑树实现过程难度主要集中在删除节点上,考虑的情况比较多!下面是删除节点的再次总结!上次的总结了一部分,现在我将它补充完整!删除节点的后继节点是父亲节点的左子树:总共四种情况当删除节点的后继节点是父亲的右子树:下面是实现的运行的运行截图:插入的多组测试用例并打印层次遍历的红黑树插入后结果:删除节点测试:源代码欢迎star和fork哦~~~...

2019-12-15 20:42:03

红黑树(插入和删除原理)

二叉查找树(BST)是一种父亲节点的值大于左孩子的值,而小于右孩子的值,查找效率是O(logn),但是在插入方面,可能在某些情况下使整个树退化成链表。所以为了进一步实现优化,有了红黑树的数据结构。红黑树的特点:(1)在父亲节点和子节点的关系上,和BST树是一致的。(2)每个节点都有颜色标示(3)根节点是黑色(4)叶子节点为NULL,也必须是黑色(5)如果一个节点是红色,则两个孩子节点是...

2019-12-08 14:54:13

阿拉伯转罗马数字

罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000...

2019-12-06 23:03:08

寻找第k个最大数

在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明: 你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。使用分治法解决,和快速排...

2019-12-05 16:57:18

创建型模式和结构型模式总结

创建型模式:主要实现单实例模式,简单工厂模式,工厂方法模式结构型模式:主要实现适配器模式,桥接模式创建型模式:对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象的使用分离。为了软件的结构更加清晰,外界模块中的对象只需要知道他们共同的接口,而不清楚具体对象的实现细节,使整个系统的设计更加符合单一职责原则。创建型模式在创建了什么,由谁创建,何时创建等方面都为软件设计者提供了尽可能答得...

2019-12-04 17:15:29

内存分配算法

首次适配算法,存储管理器沿着段链表进行搜索,找到第一个足够大的空闲块,将一部分分配给进程使用,另一部分作为空闲块,等待下一次分配。首次适配尽可能减少搜索链表节点。对首次适配进行很小的修改就能得到下次适配算法,他的工作方式和首次适配算法相同,不同点是每次找到空闲区的时候都记录当时的位置。以便下次从头开始搜索。最佳适配算法,最佳适配搜索会遍历整个链表,找到满足要求的最小空闲块,最佳适配分配的找到的...

2019-11-26 20:09:51

买卖股票的最佳时机

给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 ...

2019-11-25 22:25:22

编译原理LL(1)语法分析器实现

废话不多说了,开源代码!要是觉得好的话点个star,作为辛苦费哈!LL(1)语法分析气的实现要实现LL1文法,根据个人经验总结,需要以下步骤:我没有实现间接左递归的消除,所以处理不了间接左递归文法。下面我们来说一下实现过程。输入相关文法,使用正则表达式将文法中的空串做了清除。对文法消除直接左递归,使用以下方法:要是检测到一条文法中出现以下情况:P->Pa|b则这条...

2019-11-23 16:11:05

RCU机制学习

RCU是一组Linux内核API,实现了一种同步机制,允许多个读者与写者并发操作而不需要任何锁,这种同步机制可以用于保护通过指针访问的数据。RCU读者只需要很低的额外成本,在典型的服务器内核配置下甚至是0成本。如果可能有多个写者,写者之间需要其他同步机制,除了使用RCU API直接访问指针数据,更多的使用方式是封装API使其用于链表访问。RCU适用于读取数据量大而且可以接收读取到旧数据的场景。...

2019-10-24 19:44:06

谈乱序执行和内存屏障

本文转载自:https://blog.csdn.net/dd864140130/article/details/56494925 10多年前的程序员对处理器乱序执行和内存屏障应该是很熟悉的,但随着计算机技术突飞猛进的发展,我们离底层原理越来越远,这并不是一件坏事,但在有些情况下了解一些底层原理有助于我们更好的工作,比如现代...

2019-10-24 19:55:21

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。