- 博客(100)
- 资源 (3)
- 收藏
- 关注
原创 解决QT Fault tolerant heap shim问题
参照微软解决方案:https://docs.microsoft.com/zh-cn/windows/win32/win7appqual/fault-tolerant-heap?redirectedfrom=MSDN清除FTH日志,并停止FTH日志
2020-12-08 11:36:17
1246
2
转载 进程同步机制
进程同步概念概念:并发进程在一些关键点上可能需要互相等待或互通消息,这种相互制约的等待或互通消息称为进程同步。 同步机制应遵循的准则 空闲让进:其他进程均不处于临界区; 忙则等待:已有进程处于其临界区; 有限等待:等待进入临界区的进程不能"死等"; 让权等待:不能进入临界区的进程,应释放CPU(如转换到等待状态) 使用软件算法实现互斥算法1:两个进程P0, P1共享某临界资源 算法一:设立一个公用整型变量 turn,描述允许进入临界区的进程标识,假设初始化turn=0,表.
2020-10-14 17:39:48
1231
原创 QT离线安装包下载
离线安装包网址:http://download.qt.io/archive/qt欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代
2020-06-17 09:14:43
1554
原创 pyinstaller打包exe指令
pyinstaller打包exe指令1、-F(–onefile):打包到一个exe文件中,默认是-D文件夹。2、-w(–windowed) :打出的桌面程序去掉命令行黑框3、-n(–name): 指定名称4、-i:(+图标位置) 修改程序默认图标...
2020-06-10 14:01:54
487
原创 单例模式 c++
单例模式(写LOG,读写配置文件等) c++/* good old meyers' singleton */template<class T>class CSingleton{public: static T& Instance() { static T theSingleton; return theSingleton; } /* more (non...
2020-04-27 16:40:38
228
原创 Vivado 软件安装 双击安装程序xsetup.exe没有反应
安装路径文件:安装路径名称只能够包含字母、数字、下划线。安装包路径最好在C/D/E盘的根文件下,不要嵌套太多。
2020-02-17 15:19:51
2746
1
原创 C/C++框架和库
- 1. WebbenchWebbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。下载链接:http://home.tiscali.cz/~cz210552/webbe...
2019-09-22 23:18:36
297
原创 (void)n; (void)变量
(void)n,主要作用就是避免应变量n未使用编译器警告。声明了一个变量但是却没使用 pthread_t const main_thread=pthread_self(); 编译的时候,一般会有warning,告诉你有未经使用的变量。一般可以直接忽视掉这种warning。可以用如下方面避免: pthread_t const main_thread=pthread_self(); ...
2019-09-07 13:50:16
522
原创 Linux系统调用--getrlimit()与setrlimit()函数详解
功能描述:获取或设定资源使用限制。每种资源都有相关的软硬限制,软限制是内核强加给相应资源的限制值,硬限制是软限制的最大值。非授权调用进程只可以将其软限制指定为0~硬限制范围中的某个值,同时能不可逆转地降低其硬限制。授权进程可以任意改变其软硬限制。RLIM_INFINITY的值表示不对资源限制。用法:#include <sys/resource.h>int getrlim...
2019-09-04 18:33:56
892
原创 linux中sigaction函数
函数原型:sigaction函数的功能是检查或修改与指定信号相关联的处理动作int sigaction(int signum, const struct sigaction *act,struct sigaction *oldact);signum参数指出要捕获的信号类型,act参数指定新的信号处理方式,oldact参数输出先前信号的处理方式(无的话填NULL)。struct siga...
2019-09-03 16:53:46
291
原创 Linux下" >/dev/null 2>&1 "详解
在Linux中,常会看到">/dev/null 2>&1 "出现数字解释:0:表示键盘输入(stdin)1:表示标准输出(stdout),系统默认是12:表示错误输出(stderr)指令解释:command >/dev/null 2>&1 & == command 1>/dev/null 2>&1 &1)c...
2019-09-03 15:05:01
550
原创 linux进程、线程与cpu的亲和性(affinity)
一、什么是cpu亲和性(affinity) CPU的亲和性,就是进程要在指定的 CPU 上尽量长时间地运行而不被迁移到其他处理器,也称为CPU关联性;再简单的点的描述就将制定的进程或线程绑定到相应的cpu上;在多核运行的机器上,每个CPU本身自己会有缓存,缓存着进程使用的信息,而进程可能会被OS调度到其他CPU上,如此,CPU cache命中率就低了,当绑定CPU后,程序就会一直在指定的c...
2019-08-28 12:49:08
494
转载 动态存储区、静态存储区、堆和栈的区别
C/c++程序经过编译连接后形成的二进制映像文件,这文件包含:栈,堆,数据段(只读数据段,已经初始化读写数据段,未初始化数据段即BBS)和代码段组成. 1.栈区(stack):由编译器自动分配释放,存放函数的参数值,局部变量等值。其操作方式类似于数据结构中的栈。...
2019-07-16 10:21:15
321
原创 C语言中##和#的作用
##的作用:把两个宏参数贴合在一起如在gpio-exynos4.h中:#define EXYNOS4_GPIO_NEXT(__gpio) \ ((__gpio##_START) + (__gpio##_NR) + CONFIG_S3C_GPIO_SPACE + 1)EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_A0);//上句结果为:EXYNOS4_GPIO_A0_S...
2019-07-11 10:40:34
3001
转载 C语言cgi编程入门
本文译自Getting Started with CGI Programming in C。因为本人水平有限,难免有误,欢迎指正。这是一篇介绍如何使用C语言进行CGI编程的文章。假设读者了解C基础知识,并且可以写出简单的HTML表单和在Web服务器上安装CGI脚本。通过简单的范例对原理进行解释说明。两点重要提醒:为了避免浪费时间,请检查——通过恰当的本地文档或者联系Web服务器管理员—...
2019-06-27 10:51:51
1015
转载 浅析fork()和底层实现
阅读目录fork()运行时做的事情 父子进程文件共享问题 fork()函数在底层中做了什么? vfork和fork的之间的比较:记得以前初次接触fork()函数的时候,一直被“printf”输出多少次的问题弄得比较晕乎。不过,“黄天不负留心人"。哈~ 终于在学习进程和进程创建fork相关知识后,总算是大致摸清了其中的来龙去脉。废话不多讲,下面来谈谈本人的一点小小积累一个现有...
2019-06-25 12:06:23
227
转载 c++数组的引用
引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。引用的声明方法:类型标识符 &引用名=目标变量名;引用最大的好处就是提高函数效率以及节省空间;关键问题一、传递引用与传指针、传值的区别?值传递 (pass by value),指针传递(pass by pointer),当发生函数调用时,需要给形参分配存储单元、当传递是对象时,要调用拷贝构...
2019-06-10 18:33:02
1052
原创 qt使用模板template,报错无法解析外部符号
写模板函数时,头文件和cpp文件不能分离,就是说你头文件里有模板的函数必须在头文件里实现,没有模板的函数可以放到cpp文件实现,模板类也如此
2019-06-10 16:34:46
1484
3
原创 求数组长度
C++求数组长度为:int arr_length = sizeof(arr) / sizeof(arr[0]);为了方便使用,在C语言中常定义宏来求数组长度#define ARR_LEN(array, length){length =sizeof(array) / sizeof(array[0]);}使用时,直接调用宏函数即可,如int arr[]={1,2,3,4,5}...
2019-06-10 15:07:05
1596
转载 linux内核cdev_init系列函数(字符设备的注册)
内核中每个字符设备都对应一个 cdev 结构的变量,下面是它的定义:linux-2.6.22/include/linux/cdev.hstruct cdev { struct kobject kobj; // 每个 cdev 都是一个 kobject struct module *owner; // 指向实现驱动的模块 const struct...
2019-06-05 09:20:04
267
转载 Linux字符设备中的两个重要结构体(file、inode)
对于Linux系统中,一般字符设备和驱动之间的函数调用关系如下图所示上图描述了用户空间应用程序通过系统调用来调用程序的过程。一般而言在驱动程序的设计中,会关系 struct file 和 struct inode 这两个结构体。用户空间使用open()系统调用函数打开一个字符设备时(intfd = open("dev/demo", O_RDWR))大致有以下过程:在虚拟...
2019-06-04 10:03:12
792
1
原创 记录一次巨坑的开发经历
最近准备玩玩esp8266,使用官方FreeRTOS_SDK 2.0 开发,编译程序后,使用74880波特率串口输出永远是乱码。一直以为自己编译烧录出错,各种查资料,无果。最后换了个串口线,可以使用了。。。以后有问题,还是得先查硬件问题。。。。...
2019-05-27 14:11:48
195
转载 nfs中portmap的作用
Linux下RPC服务由portmap服务控制。因为NFS支持的功能相当多,而不同的功能都会使用不同的程序来启动。每启动一个功能就会启用一些端口来传输数据,因此NFS的功能所对应的端口才没有固定,而是采用随机取用一些未被使用的小于724的端口来作为传输之用。但如此一来又造成客户端要连接服务器时的困扰,因为客户端要知道服务器端的相关端口才能够联机,此时我们需要远程过程调用(RPC)的服务。RPC最...
2019-05-24 08:46:36
1974
原创 最小二乘法原理、推导和运用
原理部分:如何理解最小二乘法? 原文查看:https://www.matongxue.com/madocs/818.html下文是推到部分:原文:https://blog.csdn.net/marsjohn/article/details/54911788在数据的统计分析中,数据之间即变量x与Y之间的相关性研究非常重要,通过在直角坐标系中做散点图的方式我们会发现很多统计数据近...
2019-05-23 14:22:27
2969
原创 QT串口多线程使用
使用movetothread方式。 ySerialPort = new YSerialPort(); serialPortThread = new QThread(); ySerialPort->moveToThread(serialPortThread); serialPortThread->start(); connect(serialPortTh...
2019-05-22 09:41:28
3296
4
原创 基于qDebug的输出日志到文件
软件设计,常需要监测软件的软件的运行情况,用来记录软件运行情况,并在出现问题是辅助查找问题。基于qt的软件设计,设计中常使用qDebug()来打印相关内容。下文介绍如何将打印内容输出到指定的文件。主要使用到了qInstallMessageHandler函数。代码如下:void myMessageOutput(QtMsgType type, const QMessageLogContext &...
2019-05-22 09:29:12
1422
原创 QByteArray常用类型转换
在使用qt串口时,经常会进行QByteArray相关的转换。uchar转换为QByteArray类型方法:QByteArray sbuf = QByteArray::fromRawData((char *)buf, sizeof(buf));QByteArray转换为uchar类型方法:1.使用reinterpret_cast一次转换所有数据(responseData为QByteArra...
2019-05-16 14:51:19
10765
原创 QObject::connect: Cannot queue arguments of type 'QString&'的解决方法
[Qt]QObject::connect: Cannot queue arguments of type 'QString&'的解决方法在主线程和子线程中,通过信号与槽发送QString,遇到QObject::connect: Cannot queue arguments of type 'QString&'问题错误代码:connect(this,SIGNAL(emStar...
2019-05-15 17:30:46
2491
原创 Error:..\FreeRTOS\portable\RVDS\ARM_CM4F\port.c,441 原因及解决方法
Error:…\FreeRTOS\portable\RVDS\ARM_CM4F\port.c,441 原因及解决方法参考原子ucos和官网例程移植STM32+FreeRTOS+Lwip中出现如上问题。原因:在中断中调用了任务级的freertos函数,应调用中断级(即以ISR结尾的)主要问题都在sys_arch.c中:函数err_t sys_mbox_trypost(sys_mbox_t *...
2019-04-12 19:40:22
6372
原创 UML类图,通俗易懂。
UML类图(Class Diagrams): 用户根据用例图抽象成类,描述类的内部结构和类与类之间的关系,是一种静态结构图。在UML类图中,常见的有以下几种关系:泛化(Generalization),实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。 各种关系的...
2019-04-01 11:38:23
448
1
转载 length()、size()、sizeof()三者的区别
一、length()函数c++中,length()只是用来获取字符串的长度。例如:string str = “asdfghjkl”则,str.length() = 9。二、size()函数c++中,在获取字符串长度时,size()函数与length()函数作用相同。除此之外,size()函数还可以获取vector类型的长度。例如:vector < int> ...
2019-03-18 13:58:16
1625
转载 __getattr__和__getattribute__
本文转自:https://blog.csdn.net/f1ngf1ngy1ng/article/details/80583985__getattr__当属性查找不到时会报错___getattr__是在查找不到属性时调用,重写___getattr__就可以知道我们可以在__getattr__写自己的逻辑,以下是两个应用场景1、当我们写错属性名字时,可以通过__getatt...
2019-03-13 17:05:20
181
原创 python _、__和__xx__的区别
python _、__和__xx__的区别本文为译文,版权属于原作者,在此翻译为中文分享给大家。英文原文地址:Difference between _, __ and __xx__ in Python"_"单下划线Python中不存在真正的私有方法。为了实现类似于c++中私有方法,可以在类的方法或属性前加一个“_”单下划线,意味着该方法或属性不应该去调用,它并不属于API。在使用p...
2019-03-13 16:55:48
155
转载 Qt 线程基础(QThread、QtConcurrent等)
使用线程基本上有种使用线程的场合:通过利用处理器的多个核使处理速度更快。 为保持GUI线程或其他高实时性线程的响应,将耗时的操作或阻塞的调用移到其他线程。何时使用其他技术替代线程开发人员使用线程时需要非常小心。启动线程是很容易的,但确保所有共享数据保持一致很难。遇到问题往往很难解决,这是由于在一段时间内它可能只出现一次或只在特定的硬件配置下出现。在创建线程来解决某些问题之前,应该考...
2019-03-12 11:14:01
636
转载 QThread使用——关于run和movetoThread的区别
QThread 似乎是很难的一个东西,特别是信号和槽,有非常多的人(尽管使用者本人往往不知道)在用不恰当(甚至错误)的方式在使用 QThread,随便用google一搜,就能搜出大量结果出来。无怪乎Qt的开发人员 Bradley T. Hughes 声嘶力竭地喊you are-doing-it-wrong和众多用户一样,初次看到这个时,感到 Bradley T. Hughes有 些莫名奇妙,小...
2019-03-12 10:56:07
516
原创 QT连接mysql,错误提示QMYSQL driver not loaded解决办法
解决办法:将MySQL安装目录下的libmysql.dll拷贝到Qt安装目录下的bin目录(D:\Qt\Qt5.9.2\5.9.2\msvc2015\bin)中即可。但是,好多时候发现粘贴过去也报错。原因是:MYSQL和QT不是一个位数的,MYSQL64位,QT成了32位,或者其他。如mysql是64位,将libmysql.dll拷贝到D:\Qt\Qt5.9.2\5.9.2\msvc20...
2019-03-11 17:15:18
1198
原创 阿里云 安装、配置、外部连接mysql
以下全在root权限下运行:安装msyql升级apt-getapt-get update安装 mysql-serverapt-get install mysql-server //服务器apt-get install mysql-client //客户端,可不安装apt-get install libmysqlclient-devmysql常用指令(可以试一下)查看mysq...
2019-03-11 15:09:27
621
原创 Qt QSettings操作ini配置文件
QSettings操作ini配置文件QSettings有两种方法,1是操作注册表,2是操作ini文件。笔者喜欢后一种,主要介绍后一种。何时使用一般分两种情况:保存软件使用过程中修改的一些文本、数字信息,下次打开软件时可以直接显示上次关闭软件时修改的值,而不是默认的值。需要 读写 ini文件。直接存储一些配置信息,如调试、校准参数等,不需要界面显示,数据不合适时,可直接修改ini文件内...
2019-03-07 19:05:29
1782
原创 QT /QML程序加载必须dll文件、部署、打包生成免安装程序
qt提供了专门的部署工具, windeployqtQT官方资料显示如下:Usage: windeployqt [options] [files]Qt Deploy Tool 5.9.0The simplest way to use windeployqt is to add the bin directory of your Qtinstallation (e.g. <...
2019-03-07 18:13:47
932
HXSC-UNIX环境高级编程(中文第三版)
2019-03-20
设计模式:可复用面向对象软件的基础(非扫描版+高清)
2019-03-20
HXSL-廖雪峰-JavaScript-教程 ----PDF文件--- 高清带书签(非扫描)
2019-03-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人