线程同步之条件变量:pthread_cond_signal和pthread_cond_wait 在多线程编程下,常常出现A线程要等待B线程条件完成后再继续进行,这里等待方式有两种:1.使用锁+轮询使用这种方法可以很简单的实现,但是会有一定的性能消耗,其还有一个点要好好把握,就是一次轮询没有结果后相隔多久进行下一次的轮询,间隔时间太短,消耗的CPU资源较多,间隔时间太长,不能很及时的响应请求。所以这种方法不是推荐。2.使用条件变量的线程同步(推荐)采用阻塞和消息方式可以极大程度上减少资源的浪费以及增加实时性线程条件变量pthread_cond_t线程等待某个条件int p
C++ Unicode/UTF-8中文 相互转换 C++ Unicode/UTF-8中文 相互转换需求一中文 ”你好啊“ ----------unicode----------> \u4F60\u597D\u554Aunicode编码字符串转中文。例: “4F60597D554A” —> "你好啊”解决方式需求二unicode 字节数组转中文例:0x89 0x7F 0x5B 0x89 0x8D 0xEF —> 西安路解决方式需求三 中英文转unicodeasd你好阿 ----> 006.
fontforge制作MiniGUI的 旋转字库 一. 制作TTF旋转字库1.下载fontforge,可以在Ubuntu软件中心下载2. 用该软件打开字库之后,按ctrl+a全选文字3.点击上面工具栏的基础–>变换–>如图设置需要注意的是1、需要选择字形原点,不能按选中部分的中心旋转,不然会导致汉字与数字和英文显示的高度不在同一水平线上,如果按选中部分的中心旋转,第3步换成第4步2、需要选择顺时针旋转90度,如果逆时针旋转90度的话,文字显示会由“你好”变成“好你”,并且对齐方式是向右对齐,需要做一些额外的处理3、需要
QT 信号槽传递自定义的结构体 头文件 mainwindow.h #include <QMainWindow>typdef struct { int a; int b;}test;Q_DECLARE_METATYPE(test) //在定义结构体之后,要调用Q_DECLARE_METATYPE,向QT声明这个结构体class MainWindow:public QMainWindow{ public: explicit MainWindow(QWidget *...
QT QScroller拖拽使用方法 在开发中遇到QListWidget 实现拖拽的回弹效果,拖拽的距离太大,修改拖拽的距离继承QListWidgetQScroller *scroller;QScrollerPropertiesscrPrt ;ListWidget::ListWidget(QWidget *parent) :QListWidget(parent){ scroller = QScroller::scroller(this) //创建scroller; scroller->grab...
嵌入系统进程挂掉,拉起应用进程脚本 #!/bin/sh#./usr/bin/hs_test //应用程序名称PROC=/usr/bin/hs_testecho "========== hs_test start =========="while true; do server=`ps | grep $PROC | grep -v grep | grep -v common` #echo $server if [ ! "$server" ]; then echo "============...
在ubuntu下交叉编译miniGUI 一、使用到第三方库。1、zlib:zlib是提供数据压缩用的函式库,由Jean-loup Gailly与Mark Adler所开发,初版0.9版在1995年5月1日发表。zlib使用DEFLATE算法,最初是为libpng函式库所写的,后来普遍为许多软件所使用。2、libpng:这个是用来显示png图形的,MiniGUI里很多图都是png的,如果没有这个库,MiniGUI将无法正常工作。...
理解MiniGUI消息循环和窗口过程 1.2消息和消息循环在Windows系列操作系统中,广泛使用了消息驱动的概念。在MiniGUI中,我们也使用了消息驱动作为应用程序的创建构架。在消息驱动的应用程序中,计算机外设发生的事件,例如键盘键的敲击、鼠标键的按击等,都由支持系统收集,将其以事先的约定格式翻译为特定的消息。应用程序一般包含有自己的消息队列,系统将消息发送到应用程序的消息队列中。应用程序可以建立一个循环,在这个...
wifi模块配网解析 本文转载:https://blog.csdn.net/zhejfl/article/details/78722930智能家居/家电现阶段还处于普及阶段,由于家庭wifi网络的普及,目前普遍采用wifi与路由器完成连接,与手机/云端进行数据交互.智能硬件,如智能插座,智能空调,智能空气净化器由于不具备人机交互界面,不能像电脑一样的搜索/选择指定路由器,输入连接密码的界面,所以必须先解决正确连...
htonl、ntohl、htons、ntohs函数实现 typedef unsigned short int uint16;typedef unsigned long int uint32;//短整型大小端互换#defineBigLittleSwap16(A) ((((uint16)(A) & 0xff00) >> 8) | \(((uint16)(...
sublime text3安装Package Control 1. 下载Sublime3https://www.sublimetext.com/32. 安装Package Control在线安装: https://packagecontrol.io/ins... 因为网络原因可能失败。离线安装:下载地址:https://github.com/wbond/pack...1.把下载好的zip包解压,重命名为Package C...
交叉编译SRS 1、源码下载: SRS源码下载 : git clone http://git.oschina.net/winlinvip/srs.oschina 参考文章中介绍的是这个下载路径https://github.com/ossrs/srs,但是克隆下载时度很慢更换这个源后速度很快。2、configure 在configure之前需要修改/trunk/auto...
Linux core dump 使用方法 前言 一直在从事linux下后台开发,经常与core文件打交道。还记得刚开始从事linux下开发时,程序突然崩溃了,也没有任何日志。我不知所措,同事叫我看看core,我却问什么是core,怎么看。同事鄙视的眼神,我依然在目。后来学会了从core文件中分析原因,通过gdb看出程序挂再哪里,分析前后的变量,找出问题的原因。当时就觉得很神奇,core文件是怎么产生的呢?难道系统会自动产生,可是我在...
嵌入式设备上使用tcpdump方法 在实际应用中开发中,嵌入式设备使用网络通信时,经常不好分析数据,通常只能使用串口打印和依耐服务器端使用抓包工具获取网络数据,使开发工作有不同程度的受到阻碍,这里简单的介绍一下如何使用tcpdump工具在嵌入式设备上抓包。移植:下载资源tcpdump,libpcap,可到官网上:http://www.tcpdump.org/ 下载,我这里下载的版本如下:tcpdump-4.7.4.tar....
Ubuntu安装客户端RabbitVCS(svn管理) 1、安装sudo add-apt-repository,需要python-software-properties;software-properties-common 命令如下: apt-get install python-software-properties apt-get install software-properties-common2、将R...
C语言无符号整型转换字符串,字符串转换无符号整型 char* UInt32toStr(unsigned int n){ char buf[10] = ""; static char str[10]=""; unsigned int i = 0; unsigned int len = 0; unsigned int temp = n < 0 ? -n: n; // temp为n的绝对值 if(n==0){ str[0]...
XPath 详解及总结 本文转载:https://www.linuxidc.com/Linux/2016-12/138302.htmXPath简介XPath是W3C的一个标准。它最主要的目的是为了在XML1.0或XML1.1文档节点树中定位节点所设计。目前有XPath1.0和XPath2.0两个版本。其中Xpath1.0是1999年成为W3C标准,而XPath2.0标准的确立是在2007年。W3C关于XPath的英文详细...