- 博客(25)
- 资源 (1)
- 收藏
- 关注
原创 Linux 控制台实现选择菜单(可用方向键选择)
写这个的缘由是因为最近在做一款包含和用户交互的Linux控制台小程序,但是以往的交互手段(scanf,标准文件流读写)之类的,始终感觉有点low,倒不是不能用,最核心的痛点就是它如果要给用户展示一个新的选择界面,就只能继续往下打印新的内容,而不能在旧有的逻辑上直接覆盖,即使它们之间在内容上的差距不大。后来在网上进行了大量的相关搜索,只发现了一篇在windows平台上实现的控制台终端交互博客:链接: 在控制台真正实现选择菜单(可用方向键选择)|小知识但是linux平台上的交互菜单,始终没有找到相关博客,
2025-03-19 01:19:28
580
原创 linux 内核如何读取你配置好的.config文件
众所周知,linux kernel可以根据使用者的需要灵活的配置架构、功能和模块。甚至在文件内部的同一个接口也会根据配置不同条件编译不同的实现,这些都是通过读取在内核的顶层目录通过make menuconfig后生成的.config文件实现的。那么这个读取的过程是怎么实现的呢?
2024-10-14 17:37:56
581
原创 使用linux menuconfig来配置你的项目
从使用C语言至今我自己写过不少轮子,比如说C语言本身不提供的各种数据结构的库。常用的比如说链表,队列之类的。有时项目中的C代码会遇到需要用到这些数据结构的地方。每次都是临时去网上去找一个对应数据结构的demo,再根据实际需要来改写成符合项目需要的各种接口。有的时候不是不想写这些代码,只不过在写的时候想起自己之前写过类似的轮子,但是找不到了从而觉得很操蛋。那为什么不从现在开始管理并保存自己写过的轮子呢?menuconfig是linux内核以及Uboot使用非常广泛的项目配置工具。
2024-06-04 10:58:59
1055
1
原创 learn git branching学习整理2
目录介绍第十七关:两个父节点基础命令:命令演示组合使用:更上一层楼:通关条件通关命令第十八关:纠缠不清的分支(关于本地git的最后一关)通关条件通关命令备注远程仓库第十九关:git clone我们创建远程仓库的命令:基础命令命令演示备注第二十关:远程分支基础命令:命令演示通关条件通关命令第二十一关:Git Fetch基础命令命令演示git fetch做了些什么git fetch不会做的事通关条件通关命令备注第二十二关:Git pull基础命令:命令演示如果使用git pull呢?第二十三关:模拟团队合作基础
2022-02-20 22:09:09
1537
原创 learn git branching学习整理
learn git branching学习整理目录learn git branching学习整理介绍第一关:Git commit通关条件通关命令第二关:Git Branch基础命令:通关条件通关命令第三关:git merge(分支与合并)基础命令:命令演示通关条件:通关命令:第四关:Git Rebase基础命令:命令演示通关条件通关命令:第五关:在提交树上移动HEAD命令演示备注通关条件通关命令:第六关:相对引用基础命令命令演示介绍learn git branching是一个非常好的git学习网站,它
2022-02-20 20:11:30
7804
原创 设计模式之迭代器模式C++完全实现
前言最近和朋友聊起优快云,想想好像已经有至少几个月没来逛过了,又想起几个月以前好像自己写了一个关于迭代器模式底层实现的代码,当时准备写完发博客的,只不过因为各种原因搁置了,现在既然想起来了,那就顺便把它上传一下吧。当时写这个迭代器模式的时候的目的是想学习一下C++ STL的底层实现,但是翻看了很多迭代器模式的实现代码以后发现都只是在C++原生vector容器的基础上封装了一个自己的迭代器,仅用来说明STL中容器和迭代器的关系,以及迭代器模式的核心原理。当时可能是头铁吧,哈哈。于是把迭代器模式中封装原有
2021-06-21 14:39:24
489
原创 群晖NAS搭建SVN服务器过程记录
刚买了一个入门级的群晖NAS个人云网盘,一直在想既然NAS上自带操作系统,而且又可以通过外部互联网读写网盘上的文件,那么可不可以在个人的NAS网盘上搭建一个SVN服务器呢?群晖设置群晖到手以后通过说明书上的设置向导初始化成功之后,通过电脑端访问群晖,在套件中心有丰富的第三方套件可以安装,一直往下拉,果然找到了熟悉的SVN Server安装好SVN以后开始创建代码仓库以及用户名和密码,参见链接: https://www.doc88.com/p-5857836376020.html,SVN服务器部分只需要
2021-02-13 22:53:26
26730
3
原创 C/c++查看内存中的数据
我们平时在写代码的时候常常需要查看分析一个结构体或者一个变量随着程序的运行在内存中的数据。这个需求在支持分步调试的IDE中往往可以分容易实现。比如KEIL、vs、CCS都支持这一功能,但是如果程序在写好以后烧写到开发板中调试的时候,这个时候的虽然可以通过串口打印查看程序的运行状态,但是如果想要监控一些变量在内存中的存储,往往是很难实现的。所以我写了一个可以根据输入地址,打印其在内存中存储的函数,以便自己以后在工作中如果有需要直接从优快云上扒下来用。如果这段代码对你有帮助,也可以尽情Ctrl+c,Ctrl
2020-10-29 23:12:02
4948
原创 C++运算符重载
C++运算符重载#include <iostream>using namespace std;class Time{ //当运算符的左操作数不是自己的时候,需要以友元函数的形式完成重载 friend ostream &operator<<(ostream &out, Time &t);public: Time(int h=0, int m=0, int s=0) :hour(h), min(m), sec(s) { } voi
2020-07-02 22:50:58
178
原创 C++深拷贝与浅拷贝
C++深拷贝与浅拷贝#include <iostream>using namespace std;//一个会引起浅拷贝的类class A{public: //拷贝构造函数,当出现用一个已存在的对象构造一个新对象(还不存在)的时候 //用户应该自己实现一个!!!!! A(const A &x) { cout << "AAAAA copy" << endl; //1. 重新申请属于自己的新空间 p = new int; //2
2020-07-02 22:49:24
146
原创 C++ STL学习笔记--------deque
C++ STL学习笔记--------deque#include <iostream>#include <deque>#include <algorithm>using namespace::std;void printDeque(const deque<int>& d) { for (deque<int>::const_iterator it = d.begin(); it != d.end(); it++)
2020-07-02 22:44:34
245
原创 C++ STL学习笔记---------list
C++ STL学习笔记---------list#include <iostream>#include <list>using namespace::std;/*list构造函数功能描述:创建list容器函数原型:list<T> lst; //list采用采用模板类实现,对象的默认构造形式:list(beg,end); //构造函数将[beg, end)区间中的元素拷贝给本身。list(n,elem); //构造函数将n个elem拷贝给本身。lis
2020-07-02 22:41:26
130
原创 C++STL学习笔记--------queue
#include <iostream>#include <queue>#include <string>using namespace::std;/* queue 常用接口功能描述:栈容器常用的对外接口构造函数:queue<T> que; //queue采用模板类实现,queue对象的默认构造形式queue(const queue &que); //拷贝构造函数赋值操作:queue& operator=(const que
2020-07-02 22:36:42
150
原创 C++STL学习笔记--------stack
#include <iostream>#include <stack>using namespace::std;/* stack 常用接口功能描述:栈容器常用的对外接口构造函数:stack<T> stk; //stack采用模板类实现, stack对象的默认构造形式stack(const stack &stk); //拷贝构造函数赋值操作:stack& operator=(const stack &stk); //重载等号操作符
2020-07-02 22:30:49
132
原创 C++STL学习笔记--------string
C++STL学习笔记--------string#include <iostream>#include <string>using namespace::std;//string构造/*string构造函数构造函数原型:string(); //创建一个空的字符串 例如: string str;string(const char* s); //使用字符串s初始化string(const string& str); //使用一个string对象初始化另一个s
2020-07-02 22:27:29
478
原创 C++ STL容器学习笔记-------Vector
C++ STL容器 Vector#include <iostream>#include <vector>using namespace::std;void printVector(vector<int>& v) { for (vector<int>::iterator it = v.begin(); it != v.end(); it++) { cout << *it << " ";
2020-07-02 22:22:30
210
原创 设计模式学习笔记(一)
设计模式学习笔记(一)最近在重新学习以前只是笼统写过一遍代码的设计模式,因为我觉得设计模式是一种思想,我们在学习它的过程中应该更加注重书中用到的思想,而不是只是把所有的模式用自己熟悉的语言都写一遍就代表自己会了。所以决定把书中的内容从头到尾重新系统的学习一遍,学习过程中的所有笔记和感悟都会总结分享到优快云上,以便自己以后查阅。本人学习设计模式所参考的书籍是亚历山大·什韦茨(Alexander Shvets)著作的《深入设计模式》。另外本书在网上也有部分内容可以免费查阅。链接: https://ref
2020-06-20 14:19:03
975
转载 Qt数据库之访问 SQLite
SQLite 是一个开源的嵌入式关系数据库,实现自包容、零配置、支持事务的SQL数据库引擎。 其特点是高度便携、使用方便、结构紧凑、高效、可靠。整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。SQLite 支持跨平台,同一个 SQLite 的数据库文件,可以在 Windows,Linux,Mac OS 中使用。SQLite 的使用非常广泛,例如 Firefox,Chro...
2020-03-18 21:22:37
858
原创 Qt中QTreeWidget根据数据库(QTableWidget)内容动态构建目录
一.前言这篇博文的内容是我在看了优快云博主:姓值钱的金三岁 的博文《Qt中QTreeWidget根据数据库内容动态构建目录》写出来的,但是我为了达到演示的效果,是用QTableWidget来模拟数据库的,如果是用sqlite数据库,应该要比TableWidget更简单一点,但原理是相同的。二.效果图先上效果图:基本逻辑和伪代码可以去原博主哪里看一下再回来,我这里只上源码。链接: 《Qt...
2020-02-27 09:53:54
4079
1
原创 C++模拟实现撤销和重做功能
C++模拟实现撤销和重做功能概述基本思路效果预览代码实现概述此功能是我在学习设计模式的时候根据其中的命令模式的原理写出来的一个demo,原理应该和各种编辑器上的redo/undo(重做/撤销)是一样的,如果不知道命令模式的运行逻辑,可以先去菜鸟教程上看一下它的原理实现再来查看此例程。链接: 命令模式|菜鸟教程.另外一个网站有比较详尽的原理介绍:链接: 命令模式原理介绍.基本思路我们平...
2020-02-10 12:40:25
3911
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人