自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(95)
  • 资源 (7)
  • 问答 (4)
  • 收藏
  • 关注

原创 【linux C】绑定任务到特定CPU(CPU亲和性)

本文主要讲解了cpu_set_t类型的操作函数(CPU_ZERO CPU_SET等),以及设置亲和性的三种接口(sched_setaffinity pthread_setaffinity_np pthread_attr_setaffinity_np)的使用方法

2022-08-22 10:18:20 6652 4

原创 【linux C】posix timer接口说明

所有timer_xxxx() 都要Link with -lrttimer_createint timer_create(clockid_t clockid, struct sigevent *restrict sevp, timer_t *restrict timerid );timer_create()创建一个新的间隔定时器,新定时器的 ID在timerid指向的缓冲区中存储,该缓冲区必须是非空指针;此ID在进程中是唯一的,直到定时器被删除;新定时器的初始状态是未

2022-04-07 19:37:06 1165 1

原创 【linux C】sigevent结构体

sigevent 结构体说明

2022-04-02 18:08:12 1862

原创 gnuplot生成cyclictest histogram图

#!/bin/bash# usage ./gen-graph.sh <PATH># NOTE: the best way is to use this scripe in .txt files' PATH.# all .txt files are treated as histogramdatafile=($(find $1 -name "*.txt"))echo "set term post eps color solid enh" > graph.cmdfor(( i=

2022-04-01 10:56:11 393

原创 cyclictest命令说明及常用搭配选项

-a CPU亲和性,如 -a 0,1,2 -a 0-2 -a 0-2,4都可以, !表示否定,如!2-4,绑定在2-4上以外的所有cpu-A 以微秒为单位将测量线程唤醒与特定偏移量对齐-b 调试选项,详见man,用来跟踪系统中的大延迟的。-c 选择时钟。0 线性增长时钟 1墙上时间时钟。当设置-s选项时,该选项失效。-C 上下文切换。调试相关,和-b一起用的。-d,–distance=DIST.当多个线程时,设置间隔(睡眠时间)的增量distance。 interval(线程n) = in

2022-04-01 10:50:05 1478 4

原创 shell脚本getopt使用详解

1 getopt详解1.1 getopt --help用法:getopt 选项字符串 参数getopt [options] [--] 选项字符串 参数getopt [options] -o|--options 选项字符串 [选项] [--] 参数 解析命令选项。 选项:-a, --alternative 允许长选项以单个 - 开头-l, --longoptions 要识别的长选项-n, --name 要报告其错误的程

2022-03-30 19:23:39 4101

原创 scp脚本-shell模板-shell参数处理

shell脚本模板 scp脚本 shell参数处理

2022-01-17 18:04:07 768 1

原创 Googletest初级教程

Googletest 初级教程本文翻译自官方文档,官方原文请见Googletest Primer为了保证阅读的质量,本文部分内容并非直译,而是加入的译者的理解的意译。若有不足之处,还请斧正。以下为翻译正文… …简介:为什么选择googletest?googletest可以帮助你更好地编写C++的测试用例。googletest是由谷歌的测试技术团队根据Google的特定要求和约束开发的测试框架。无论你是在Linux操作系统、Windows操作系统或者Mac操作系统上工作,如果你在编写C++的代码

2022-01-14 16:38:49 3897 1

原创 vimrc配置文件

vimrc配置文件,包括自动缩进,tab设置,一键注释,键盘映射

2022-01-07 19:09:03 1175

原创 vim缩进设置详解

1 vim四种缩进设置vim有4种缩进设置:autoindentsmartindentcindentindentexpr这四种缩进设置,后边的优先级要高于前边的。比如,当设置了cindent或者indentexpr,再设置smartindent是没有任何作用的。1.1 没有设置任何缩进通过类似:set autoindent?的命令,查看四种缩进设置,发现没有设置任何缩进的话,那么,在vim编辑期间,回车所创建的新行,是没有缩进的,光标停留在行首。1.2 autoindent跟随上一行

2022-01-07 18:07:37 12353

原创 vim字符编码详解

vim字符编码配置详解

2022-01-05 19:02:18 2691

原创 linux查看glibc版本

linux下查看glibc版本

2021-12-28 16:28:59 867

原创 gcc搜索路径:搜索头文件、搜索动态库

gcc头文件搜索路径、动态库搜索路径的查询与设置

2021-12-28 16:18:05 1819

原创 gcc指定要链接的动态库

gcc指定链接库

2021-12-28 15:45:34 3681

原创 查看一个可执行文件所依赖的动态库

linux 查看可执行文件所依赖的具体的动态库的方法。

2021-12-28 15:12:54 584

原创 C语言版快速排序

一、版本一 main.c#include <stdio.h>#include <stdlib.h>#include "quick_sort.h"static void print_arr(int *arr, int len){ int i = 0; for(i=0; i<len; i++) printf("%...

2020-02-23 20:10:05 208

原创 linux驱动开发LDD(五)——字符设备驱动编程、GPIO库函数、综合运用goto语句、ioctl

11

2020-02-14 18:56:19 482

原创 linux内核错误返回值ERRNO

#ifndef _ASM_GENERIC_ERRNO_BASE_H#define _ASM_GENERIC_ERRNO_BASE_H#define EPERM 1 /* Operation not permitted */#define ENOENT 2 /* No such file or directory */#define ESRCH 3 /* No such pro...

2020-01-23 17:08:15 1288

原创 内核空间和用户空间的数据交换

用户空间执行的代码是不能访问内核空间的,如当用户空间调用 read(fd,buf,len)时,到内核中会调用 sys_read,然后sysread找到应该具体调用的read函数,该系统调用和内核、为内核增加一个系统调用文章中有具体描述,最后由内核调用磁盘驱动获取数据 将数据写入buf。write(fd,buf,len)同理,最后由内核调用磁盘驱动将buf中的数据写入磁盘。内核空间执行的代...

2020-01-23 10:58:47 423

原创 linux驱动开发LDD(四)——字符设备驱动编程框架

(一)概念字符设备Linux内核中将设备按照硬件操作特性分为三类:1)字符设备 :读写时以字节为单位 读写顺序固定例如 键盘 鼠标 触摸屏 …2)块设备: 读写时以扇区(多字节)为单位 读写顺序不固定例如 硬盘 flash …3)网络设备: 读写时以帧(多字节)为单位 读写顺序固定 在linux系统中实现一个字符设备硬件驱动:例如 键盘,实则就是在内核中实例化一个...

2020-01-18 16:18:31 299

原创 linux驱动开发LDD(三)——系统调用和内核、为内核增加一个系统调用

(一)系统调用定义系统调用由操作系统实现提供的应用编程接口(Application Programming Interface,API),是应用程序同系统之间的接口,实则,系统调用是软件上由用户态进入内核态的唯一方式,保证用户用户空间以安全的访问内核。内核为什么要提供系统调用呢?系统调用的实现方式:软中断用户程序 首先将系统调用号填充到某个寄存器执行软中断指令该指令导致处理器收到...

2020-01-18 13:39:36 341

原创 linux驱动开发LDD(二)——符号导出和模块参数

(一)导出符号它是用于解决模块之间的相互函数调用问题 export.c#include <linux/init.h>#include <linux/module.h>int my_add(int x, int y){ printk("<1>" "enter %s\n", __func__); return x+y;...

2020-01-15 21:29:42 436

原创 linux内核printk优先级

标准使用方式:printk(优先级 “fdasdfsdfas\n”);如果 printk(“fasdfasfa”);//使用默认的优先级打印优先级:linux内核将打印的优先级分为0~7 共8级,值越小优先级越高优先级阈值:cat /proc/sys/kernel/printk7 4 1 7第一个值:优先级阈值第二个值:默认优先级调整优先...

2020-01-15 20:26:00 489

原创 linux驱动开发LDD(一)——第一个内核模块

环境:编译好的内核源码/home/cjl/driver/kernelx6818开发板,使用上边的内核网络根文件系统 /home/cjl/driver/rootfs编写hello.c, 详情见注释//以下两个头文件是内核模块编程时必须要加的,位于内核源码中#include <linux/init.h>#include <linux/module.h>//...

2020-01-15 09:23:50 354

原创 Qt学习之目录和定时器

目录操作QDir1)创建目录对象QDir dir("./photos");2)遍历目录下的内容QStringList list = dir.entryList(Filters filters);filters:–>QDir::Dirs 只访问目录文件–>QDir::Files 只访问普通文件–>QDir::NoDotAndDotDot 不包括".“和”…"...

2019-12-05 09:00:11 171

原创 Qt学习之资源和图片

资源编译器1)创建资源文件(.qrc) <RCC> <qresource prefix="/"> <file>6.jpg</file> </qresource> </RCC>2)通过rcc将资源文件编译成c++源文件rcc test.qrc -o qrc_test.cpp绘...

2019-12-04 11:18:50 205

原创 Qt学习之Qt Creator

任意目录执行“qtcreator”进入创造器界面在欢迎模式下,选择“New Project”创建新工程1)选择模板:Application->Qt Widgets Application//选择其他也行,看情况2)项目位置和介绍指定名字:Calculator3指定路径:工程父目录注:将来会自动在路径下创建和名字相同的工程目录3)Kit Selection//开发工具选...

2019-12-04 11:09:31 285

原创 Qt学习之Qt Designer(设计师)

创建工程目录mkdir Calculator2进入工程目录,启动设计师1)执行“designer”即可进入设计师2)在新建窗体界面选择“Dialog Without Buttons”//也可以选其他父窗口在设计师中完成界面设计1)从"Widget Box"选需要使用控件,拖拽父窗口上面LineEdit(3个)Label(1个)PushButton(1个) 2)设置父...

2019-12-04 09:38:05 3286

转载 Ubuntu18.04 Qt5.11.2无法切换中文输入法

无法切换中文输入的原因是当前下载的QtCreator中没有适配当前输入法框架(ibus、fcitx)的动态库解决方法:一、安装对应的输入法插件1、如果是fcitx:ubuntu18.04:sudo apt-get install libfcitx-qt5-dev拷贝系统路径上的(/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcont...

2019-12-03 10:37:17 843

原创 Qt学习之面向对象的Qt编程

案例:加法计算器需求:1)左右操作数(QLineEdit)只能输入数字形式的内容2)初始化等号按钮是禁用状态(灰色不能点击),等左右操作数都输入了有效数据才恢复按钮为正常可点击状态.3)按钮点击时,计算和显示结果思路://自定义的类继承QDialog,就继承父窗口属性和行为class CalculatorDialog:public QDialog{ Q_OBJECT//Mocpu...

2019-12-03 09:56:25 659

原创 Qt学习之信号和槽机制

概念信号和槽是Qt中自行定义一种通信机制,实现对象之间的交互;当对象的状态发生改变,将会发送信号,该信号可以被其它对象所接收,接收到信号后会执行一个指定操作函数(槽)。定义class XX:public QObject{ Q_OBJECT //moc元对象编译器signals: void sig_func(...);//信号public slots: void slot_f...

2019-12-03 09:39:50 563

原创 Qt学习第一天

(一)Qt相关可以在bash直接执行1)assistant(Qt助手)//Qt帮助手册2)qmake(Qt构建器)3)designer(Qt设计师)//图形化编辑工具4)uic(Qt界面转换器)//将ui文件抓换为c++代码5)moc(Qt元对象编译器)//将qt语法扩展还原为标准C++6)rcc(Qt资源编译器)//将图片等资源编译为C++代码7)qtcreator(Qt创造...

2019-12-02 09:16:09 123

原创 Qt学习之安装

下载地址:http://download.qt.io/archive/qt/ubuntu 32位下载:qt-opensource-linux-x86-5.4.1.runubuntu 64位下载:qt-opensource-linux-x64-5.4.1.runubuntu18.04以上建议下载Qt的较新版本:qt-opensource-linux-x64-5.11.2.run运...

2019-12-02 08:57:20 122

原创 C++学习之IO流

主要I/O流类格式化I/O1)格式化函数(成员函数)cout << 10/3.0 << endl;//3.33333cout.precision(10);cout << 10/3.0 << endl;//3.3333333332)流控制符(全局函数)#include cout << 10/3.0 <<...

2019-12-01 10:21:25 181

原创 C++学习之异常处理

传统C中的错误处理1)通过返回值表示错误优点:函数调用路径中所有栈对象都可以被右花括号正确的析构,不会内存泄漏.缺点:错误处理流程比较复杂,需要逐层返回值判断,代码臃肿.#include <iostream>#include <cstdio>using namespace std;class A{public: A(void){ cout &lt...

2019-11-30 15:03:41 81

原创 C++学习之typeid操作符

typeid操作符#include typeid(类型/对象)//返回typeinfo对象,用于描述类型信息1)typeinfo类中包含了name()成员函数,可以获取字符串形式的类型信息.2)typeinfo类支持比较操作符重载,可以直接进行类型之间比较;如果类型之间存在多态的继承关系,typeid还可以利用多态的语法特性,确定实际的对象类型。#include <iostream...

2019-11-30 14:29:36 169

原创 C++学习之多态

虚函数覆盖(函数重写),多态的概念1)如果将基类中某个成员函数声明为虚函数,那么其子类中与该函数具有相同原型的成员函数就也是虚函数,并且对基类中的版型形成覆盖,即函数重写(override).2)满足虚函数覆盖要求后,通过指向子类对象的基类指针或者通过引用子类对象的基类引用,调用虚函数,实际被执行的将会子类中重写的覆盖版本,而不是基类中原始版本,这种语法现象就是多态。class Base...

2019-11-30 13:56:50 118

原创 C++学习之多重继承,钻石继承,虚继承(二)

多重继承:一个子类可以同时继承多个基类,这样继承方式称为多重继承 向上造型时,编译器会根据各个基类子对象的内存布局,自动进行偏移计算(如,第一个基类子对象的起始地址和整个对象的起始地址一样),以保证指针的类型和所指向的目标基类子对象类型一致。#include <iostream>using namespace std;class Phone{//电话publi...

2019-11-29 14:50:28 204

原创 C++学习之继承(一)

继承的概念通过一种机制表达类型之间共性和特性方式,利用已有的数据类型定义的新的数据类型,这种机制就是继承。子类(派生类)继承父类(基类)继承的语法class 子类:继承方式 基类1, 继承方式 基类2... ...{ ...};继承方式:1)公有继承public2)保护继承 protected3)私有继承 private公有继承的特性(public)1)子类...

2019-11-27 11:28:14 214

原创 C++学习之操作符重载

二十 操作符重载(operator)1 基本概念操作符重载就是一些具有特殊名称的函数,“operator操作符”,把已存在操作进行重新定义,针对自定义的类类型对象,完成自定义的运算功能.eg:复数(1+2i) + (3+4i) = 4+6i2 双目操作符重载: L#R1.1 运算类的双目操作符:+ - …–》表达式结果是右值,不能对表达式结果再赋值–》左右操作数既可以是左值也可以是...

2019-11-25 20:52:49 303

posix官方相关文档

POSIX Base Definitions.pdf POSIX Base Specifications, Issue 7.pdf POSIX Rationale (Informative).pdf POSIX Realtime and Embedded Application Support.pdf(IEEE std 1003.13-2003) POSIX Shell and Utilities.pdf POSIX System Interfaces.pdf POSIX Technical Corrigendum 1.pdf POSIX Technical Corrigendum 2.pdf

2020-12-02

day04.tar.gz

Qt读写锁,信号量,鼠标键盘事件,定时器,目录操作,详情见https://blog.csdn.net/u013511885/article/details/103397896

2019-12-05

ShowImage.zip

Qt资源实现图片查看,详情查看https://blog.csdn.net/u013511885/article/details/103383310

2019-12-04

server.tar.gz

详情见博客https://blog.csdn.net/u013511885/article/details/103125969

2019-11-20

wpsFonts.tar.gz

内含针对WPS11.1.0.8865的字体补充包,在Ubuntu18.04 64位系统中经测试成功解决字体缺失问题,详情请见我博客《Ubuntu18.04安装WPS字体缺失的解决方案》

2019-10-09

java swing 计算器

支持加括号的计算器,支持连续输入,一齐出结果,实现了计算器的基本功能

2018-12-25

操作系统课程设计 进程管理

java Swing 编写的桌面程序源码,支持5种指令 x=? ?为一个数,赋值语句。x++; x--; !?? 第一个?为阻塞原因A或者B, 第二个?为需要阻塞的时间。end.结束语句。 该系统还添加了单步运行的功能,可以更加直观的观看进程调度的过程。 支持3中调度算法:1.时间片轮转 2.静态优先级 3.动态优先级(比较简单) 注:在该项目中需要把读取txt代码的路径改为项目目录下。

2018-12-25

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除