<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Irwin博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/jiamantuo</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; jiamantuo]]></copyright><item><title><![CDATA[QT5- 基础1.1 实现自定义信号与槽函数及多窗口]]></title><link>https://blog.youkuaiyun.com/jiamantuo/article/details/102304600</link><guid>https://blog.youkuaiyun.com/jiamantuo/article/details/102304600</guid><author>jiamantuo</author><pubDate>Mon, 07 Oct 2019 14:21:08 +0800</pubDate><description><![CDATA[本文主要用QT5实现多窗口创建、自定义信号、自定义槽函数。

1.1 多窗口创建

点击工程名，右键选择





此时，已将新文件添加。只需要在主窗口头文件中添加新文件声明即可。



1.2 自定义槽函数

  在主窗口中头文件中添加自定义函数，类型为：public。通过创建控件来调用自定义函数。



1.3 自定义信号

使用场景：当子窗口给主窗口发送信号时。

流程：当子窗口任务...]]></description><category></category></item><item><title><![CDATA[生成HEX、BIN文件步骤]]></title><link>https://blog.youkuaiyun.com/jiamantuo/article/details/88169603</link><guid>https://blog.youkuaiyun.com/jiamantuo/article/details/88169603</guid><author>jiamantuo</author><pubDate>Tue, 05 Mar 2019 10:24:35 +0800</pubDate><description><![CDATA[生成HEX、BIN文件步骤

1、生成HEX文件

1.1 按下键盘&quot;Alt+F7&quot;调出 &quot;Options for Target &quot;设置窗口。选择如下图所示即可生成HEX文件。



2、生成BIN文件

2.1 如上图所示，调出 &quot;Options for Target &quot;设置窗口。选择&quot;Select Folder for Objects..&quot; 选择*.axf文件。





2.2 在user目...]]></description><category></category></item><item><title><![CDATA[将字符串中数字提取出来]]></title><link>https://blog.youkuaiyun.com/jiamantuo/article/details/81002959</link><guid>https://blog.youkuaiyun.com/jiamantuo/article/details/81002959</guid><author>jiamantuo</author><pubDate>Wed, 11 Jul 2018 16:40:11 +0800</pubDate><description><![CDATA[目的：将{&quot;channelnum&quot;:&quot;8&quot;,&quot;msg&quot;:&quot;01&quot;}中的8和1单独取出来。#include &amp;lt;stdio.h&amp;gt;#include &amp;lt;string.h&amp;gt;int charToInt(char *msg, int len){    char temp='0';    int i=0,num=0;    char *s = msg;    for(i=0; i&amp;]]></description><category></category></item><item><title><![CDATA[Qt学习之TCP简单通信]]></title><link>https://blog.youkuaiyun.com/jiamantuo/article/details/78886199</link><guid>https://blog.youkuaiyun.com/jiamantuo/article/details/78886199</guid><author>jiamantuo</author><pubDate>Sun, 24 Dec 2017 18:06:17 +0800</pubDate><description><![CDATA[今天学习了TCP通信,相比LINUX网络编程,Qt通信非常简单.
先上Qt Tcp通信的小菜,他们的结构.
是吧,他们的结构非常简单.当然这张图也是"盗"的.再次说明我博客很多东西都是各位路过大牛使用过的,仅仅是想让自己忘记的时候能想起来,让我和一样刚学习这块的参考.
不多说了,结构看明白后,自然是上代码:
服务端:
1:创建 监听.

tcpServer = new QTcpSer]]></description><category></category></item><item><title><![CDATA[猜数字游戏_Qt]]></title><link>https://blog.youkuaiyun.com/jiamantuo/article/details/78826321</link><guid>https://blog.youkuaiyun.com/jiamantuo/article/details/78826321</guid><author>jiamantuo</author><pubDate>Sun, 17 Dec 2017 17:31:15 +0800</pubDate><description><![CDATA[这个小栗子很多人都写过，写它仅仅是为了熟悉一些控件的使用，既不高大上也没其他想法。
1、界面构建，进入界面和操作界面。
界面简单说明：
1、主界面，显示猜数字游戏、时间、确定和退出。
2、采用stackedWidget控件，我使用的是qt5.2默认两个，但需要四个界面，选择“stackedwidget”，右击“insert page", 点击"after current page"。具体布]]></description><category></category></item><item><title><![CDATA[重定位relocate]]></title><link>https://blog.youkuaiyun.com/jiamantuo/article/details/75201042</link><guid>https://blog.youkuaiyun.com/jiamantuo/article/details/75201042</guid><author>jiamantuo</author><pubDate>Sun, 16 Jul 2017 13:27:33 +0800</pubDate><description><![CDATA[前言：本文档是根据朱友鹏老师课程中重定位内容摘抄。


当目的地址和运行地址必须不相同时且不使用位置无关码，这时我们使用重定位。//其主要使用在于uboot。


我将此过程理解为：我们写的代码，在位置有关码执行之前，将整个代码复制一份到我们指定的地址，此时还运行在下载进来的代码中，然后通过一个长跳转跳到我们复制的代码中执行。注意的是我们复制的代码需要将bss段清空，防止使用内存污染。]]></description><category></category></item><item><title><![CDATA[基于TCP的server和client编写。]]></title><link>https://blog.youkuaiyun.com/jiamantuo/article/details/74936962</link><guid>https://blog.youkuaiyun.com/jiamantuo/article/details/74936962</guid><author>jiamantuo</author><pubDate>Mon, 10 Jul 2017 21:37:58 +0800</pubDate><description><![CDATA[首先看一下大家都了解c/s架构。

先讲解server的搭建：
创建TCP套接字：
设置基础信息为后面的bind()铺垫：
bind():
监听：
等待连接：

接收和发送：


client:客户端步骤就少很多了。
创建TCP套接字：

基本信息和连接：
发送和接收：








下面是源代码：
server：
#include 
#i]]></description><category></category></item><item><title><![CDATA[消息队列实现多人聊天]]></title><link>https://blog.youkuaiyun.com/jiamantuo/article/details/71024362</link><guid>https://blog.youkuaiyun.com/jiamantuo/article/details/71024362</guid><author>jiamantuo</author><pubDate>Sun, 30 Apr 2017 17:35:21 +0800</pubDate><description><![CDATA[实验现象：先输入你要发送对象的首字母，即代码中宏定义内容。然后输入你要输入的内容。只能本地通信。
实现流程：首先打开消息队列，创建进程，子进程用于获得键盘输入的内容，像消息队列发送消息。
父进程：按类型从消息队列读取消息，显示读出的信息，打印
 * ************************************************************************]]></description><category></category></item><item><title><![CDATA[windows7下将Cygwin加入右键菜单，并从当前目录打开]]></title><link>https://blog.youkuaiyun.com/jiamantuo/article/details/70314886</link><guid>https://blog.youkuaiyun.com/jiamantuo/article/details/70314886</guid><author>jiamantuo</author><pubDate>Fri, 21 Apr 2017 14:56:07 +0800</pubDate><description><![CDATA[原文参考：
http://blog.youkuaiyun.com/wjr2012/article/details/7964005

我在使用的时候遇到的问题是


修改windows注册表

1·开始->运行(或者win键+R)，输入REGEDIT，回车，打开注册表编辑器；


2·找到HKEY_CLASSES_ROOT\Directory\Background\shell；

3·]]></description><category></category></item><item><title><![CDATA[怎样获得程序文件名]]></title><link>https://blog.youkuaiyun.com/jiamantuo/article/details/69849516</link><guid>https://blog.youkuaiyun.com/jiamantuo/article/details/69849516</guid><author>jiamantuo</author><pubDate>Sun, 09 Apr 2017 17:22:55 +0800</pubDate><description><![CDATA[在linux操作系统中，命令行的第一个参数是程序的路径名，并不是程序的文件名。
先上代码在说明。
#include 
#include 
char *basename(char *full_name)
{
char *p;
p=rindex(full_name,'/');//找到路径名中第一个'/'
if(p == '\0')
p=full_name;
else
p++;//]]></description><category></category></item><item><title><![CDATA[怎样写守护进程？]]></title><link>https://blog.youkuaiyun.com/jiamantuo/article/details/68951897</link><guid>https://blog.youkuaiyun.com/jiamantuo/article/details/68951897</guid><author>jiamantuo</author><pubDate>Sun, 02 Apr 2017 14:00:56 +0800</pubDate><description><![CDATA[1、脱离控制终端tty，让父进程为init();
先处于游离状态，用init()控制，脱离方式：用fork()建立进程，把父进程关闭。
2、禁止进程重新打开控制终端
3、关闭打开的文件描述符。
文件描述符的大小在： cd /proc/sys/fs中，cat file-max得到最大文件描述符。然后for循环关闭。
4、改变当前的工作目录
进程活动时，其工作目录所在的文件系统不能卸下。一]]></description><category></category></item><item><title><![CDATA[得到当前的工作目录]]></title><link>https://blog.youkuaiyun.com/jiamantuo/article/details/68926774</link><guid>https://blog.youkuaiyun.com/jiamantuo/article/details/68926774</guid><author>jiamantuo</author><pubDate>Fri, 31 Mar 2017 16:42:44 +0800</pubDate><description><![CDATA[得到当前的工作目录，方法有很多，比如pwd命令，那我们如果使用程序怎样来获得当前的工作目录呢？
可以采用char * getcwd(char * buf,size_t len);函数来实现。
第一个参数为：存储当前路径名的huanchengqu]]></description><category></category></item><item><title><![CDATA[改变进程的工作目录]]></title><link>https://blog.youkuaiyun.com/jiamantuo/article/details/68926347</link><guid>https://blog.youkuaiyun.com/jiamantuo/article/details/68926347</guid><author>jiamantuo</author><pubDate>Fri, 31 Mar 2017 15:58:39 +0800</pubDate><description><![CDATA[先来说说“工作目录”的概念吧。在程序中所有以文件名引用的文件路径都将被解释为当前工作目录、文件名。
比如：fd=open("./tmp/test.txt",O_RDONLY);
其实shell解释器解释的每一个命令本质上都是一个程序，基本都存放在/bin目录下，但是没有cd这个程序。
改变进程的工作目录函数如下：
#include 
int chdir(char *pathname);]]></description><category></category></item><item><title><![CDATA[GTK图形界面之登录器界面]]></title><link>https://blog.youkuaiyun.com/jiamantuo/article/details/61209648</link><guid>https://blog.youkuaiyun.com/jiamantuo/article/details/61209648</guid><author>jiamantuo</author><pubDate>Fri, 10 Mar 2017 21:52:45 +0800</pubDate><description><![CDATA[好几天没更新，今天来说说图形界面。今天要干的是做一个登录器界面，界面背景、数字按键都可以按照自己的要求来设置。在开始之前先来说说效果是怎样的吧。我们默认密码为6位，密码用‘实心  。’代替，当输入6位密码正确，我这里设置的是显示密码。不正确清空密码显示框。先看看界面效果。



当我们点击sure按键后，因为密码正确所以显示，达到预期效果。



下面上代码：

#includ]]></description><category></category></item><item><title><![CDATA[静态库与动态库的制作]]></title><link>https://blog.youkuaiyun.com/jiamantuo/article/details/58048804</link><guid>https://blog.youkuaiyun.com/jiamantuo/article/details/58048804</guid><author>jiamantuo</author><pubDate>Mon, 27 Feb 2017 12:03:28 +0800</pubDate><description><![CDATA[关于所谓“程序库”：包含了一些通用的函数的数据和二进制可执行机器码的文件。 
静态库：一些目标代码的集合。以.a作为目标文件的扩展名。用ar创建一个静态库。
下面我们开始创建静态库。我们先建立一个static_lib.c的文件，内容包含：
int add(int a,int b)
{
return a+b;
}
int sub(int a,int b)
{
return a-b;]]></description><category></category></item><item><title><![CDATA[关于STM32的IO口IN/OUT控制]]></title><link>https://blog.youkuaiyun.com/jiamantuo/article/details/56852232</link><guid>https://blog.youkuaiyun.com/jiamantuo/article/details/56852232</guid><author>jiamantuo</author><pubDate>Fri, 24 Feb 2017 20:03:55 +0800</pubDate><description><![CDATA[今天我们来讲解一下io口输入输出的控制，其实其差别仅仅在于IO口模式不同而已。
先来看看硬件电路图，已在图中表明IO管脚。

打开模板文件template，首先建立LED灯的初始化，其次建立按键初始化，当初始化完成后，我们便能按照自己的意图通过按键控制LED灯了。
LED初始化。

按键初始化

最后在控制。

以上代码用的是查询法，实现led灯的点动控制。中断法下次介绍。]]></description><category></category></item><item><title><![CDATA[c语言文件加密]]></title><link>https://blog.youkuaiyun.com/jiamantuo/article/details/53589699</link><guid>https://blog.youkuaiyun.com/jiamantuo/article/details/53589699</guid><author>jiamantuo</author><pubDate>Mon, 12 Dec 2016 22:14:27 +0800</pubDate><description><![CDATA[//路过大神请不要介意我往里面添加渣渣文档
//该程序要求要加密或解密文件必须与程序在同一目录下
#include 
#include 


//提示信息
void print_help()
{
printf("********1:加密文件***********\n");
printf("********2:解密文件***********\n");
printf("*****]]></description><category></category></item><item><title><![CDATA[闲来无事，写了个简易计算器]]></title><link>https://blog.youkuaiyun.com/jiamantuo/article/details/53178127</link><guid>https://blog.youkuaiyun.com/jiamantuo/article/details/53178127</guid><author>jiamantuo</author><pubDate>Tue, 15 Nov 2016 21:59:31 +0800</pubDate><description><![CDATA[题目如下：

计算器能进行加、减、乘、除运算。要求从键盘输入指令及操作数，如：add 3 26
//计算3+26的值，并返回结果
#include 
#include 
#include 
int add(int x,int y)
{
return x+y;
}
int sub(int x,int y)
{
return x-y;
}
int mux(int x,in]]></description><category></category></item><item><title><![CDATA[使用字符函数对GPRS数据进行分割]]></title><link>https://blog.youkuaiyun.com/jiamantuo/article/details/53143396</link><guid>https://blog.youkuaiyun.com/jiamantuo/article/details/53143396</guid><author>jiamantuo</author><pubDate>Sat, 12 Nov 2016 21:58:20 +0800</pubDate><description><![CDATA[#include 
#include //没有此头文件，会产生警告
int main(int argc, char *argv[])
{
char msg_src[]={"+CMGR:REC UNREAD,+8613466630259,98/10/01,18:22:11+00,ABCdefGHI"};
char *str=",";
char *result[10];
char *re]]></description><category></category></item><item><title><![CDATA[push 和 pop 函数的使用]]></title><link>https://blog.youkuaiyun.com/jiamantuo/article/details/53055070</link><guid>https://blog.youkuaiyun.com/jiamantuo/article/details/53055070</guid><author>jiamantuo</author><pubDate>Sun, 06 Nov 2016 16:40:07 +0800</pubDate><description><![CDATA[#include 
#include 
#include 
void *clean(void *arg)
{
printf("cleanup: %s \n",(char *)arg);
return (void *)0;
}
void * thr_fn1(void * arg)
{
printf("chread 1 start \n");
pthread_cleanup_pu]]></description><category></category></item></channel></rss>