<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/sauphy</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sauphy]]></copyright><item><title><![CDATA[2020-12-17]]></title><link>https://blog.youkuaiyun.com/sauphy/article/details/111314492</link><guid>https://blog.youkuaiyun.com/sauphy/article/details/111314492</guid><author>sauphy</author><pubDate>Thu, 17 Dec 2020 14:27:15 +0800</pubDate><description><![CDATA[#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;string.h&gt;
#include &lt;windows.h&gt;

typedef struct worker {
	char name[9]; //姓名
	char number[5];	 //编号
	char telephone[12];	 //电话
	char lab[30];		 //实验内容
    int flag;            //是否请假，.]]></description><category></category></item><item><title><![CDATA[一种基于Qt串口通信模块的测试上位机软件的设计]]></title><link>https://blog.youkuaiyun.com/sauphy/article/details/87557023</link><guid>https://blog.youkuaiyun.com/sauphy/article/details/87557023</guid><author>sauphy</author><pubDate>Sun, 17 Feb 2019 21:23:12 +0800</pubDate><description><![CDATA[【设计背景】

这是我接手的一个外包项目，仅仅负责该外包项目软件部分的上位机部分。

项目是生产一个电子烟产品，基本的原理是通过几个按键来控制内嵌的陶瓷芯片加热到指定温度，从而可以达到抽烟的效果。

站在最终的成品角度，和我的上位机软件似乎没有关系，但是涉及到大批量生成，控制加热的陶瓷芯片的质量需要保证，否则制作成了成品，加热和充电充电等功能有问题，那么报废需要花费很大的成本。

考虑到大批量生成...]]></description><category></category></item><item><title><![CDATA[通过python自动化生成GTK的布局代码(仿Qt)]]></title><link>https://blog.youkuaiyun.com/sauphy/article/details/87554289</link><guid>https://blog.youkuaiyun.com/sauphy/article/details/87554289</guid><author>sauphy</author><pubDate>Sun, 17 Feb 2019 20:47:33 +0800</pubDate><description><![CDATA[【设计背景】

工作中一个维护型的项目采用opengl+gtk+sdl的方案进行设计实现的，其中GTK负责窗口的设计实现。

使用过Qt的同学都知道QtCreator设计助手（解脱了ui设计的问题），但是GTK没有这么幸运，看了组内历史的代码，随便一个窗口代码都是上千行的，一看源码其中UI的控件创建、控件size设计、控件的位置等就占据了将近1/3，这是多么尴尬的一件事情。

客户来一个窗口，开发...]]></description><category></category></item><item><title><![CDATA[python之实现正则删除命令]]></title><link>https://blog.youkuaiyun.com/sauphy/article/details/53649845</link><guid>https://blog.youkuaiyun.com/sauphy/article/details/53649845</guid><author>sauphy</author><pubDate>Wed, 14 Dec 2016 23:57:06 +0800</pubDate><description><![CDATA[●脚本用途
 在DOS下使用del功能箭头，不支持正则表达式的功能。


●脚本实现

import shutil
import os,sys,re

def remove_file(fname):
    mode = sys.argv[1]
    mode = mode.replace(".","\\.")
    if not re.search(mode,fname):
  ]]></description><category></category></item><item><title><![CDATA[python之消除前缀重命名]]></title><link>https://blog.youkuaiyun.com/sauphy/article/details/53649830</link><guid>https://blog.youkuaiyun.com/sauphy/article/details/53649830</guid><author>sauphy</author><pubDate>Wed, 14 Dec 2016 23:55:13 +0800</pubDate><description><![CDATA[●脚本用途
遍历文件夹下的文件，消除文件名前的特征字符串。


●脚本实现

import os,sys
import re
from string import Template

div = r"、"

###############################################################################
#       @F]]></description><category></category></item><item><title><![CDATA[python一键分类文件夹下的文件音乐]]></title><link>https://blog.youkuaiyun.com/sauphy/article/details/53618346</link><guid>https://blog.youkuaiyun.com/sauphy/article/details/53618346</guid><author>sauphy</author><pubDate>Tue, 13 Dec 2016 23:37:06 +0800</pubDate><description><![CDATA[●应用场景
文件夹下音乐很，现在想根据歌名中的作者进行分类到不同的文件夹之下。
分类之后再基于分类的资源结构构件后期的web服务。
其中分类的工作交给python脚本进行完成。


●分类的脚本classdir.py

import os,sys
import shutil,string
from string import Template
import re
#########]]></description><category></category></item><item><title><![CDATA[python之一键序列化命名当前目录]]></title><link>https://blog.youkuaiyun.com/sauphy/article/details/53616523</link><guid>https://blog.youkuaiyun.com/sauphy/article/details/53616523</guid><author>sauphy</author><pubDate>Tue, 13 Dec 2016 22:59:38 +0800</pubDate><description><![CDATA[●用法
rename_dir.bat
rename_file.py %1

●rename_file.py脚本的实现

import os,sys
import shutil,string

gCount = 0
prefix = sys.argv[1]

def getList(dirname,pFunc):
    global gCount
    try:
        ls]]></description><category></category></item><item><title><![CDATA[C/C++之基础学习笔记]]></title><link>https://blog.youkuaiyun.com/sauphy/article/details/52145918</link><guid>https://blog.youkuaiyun.com/sauphy/article/details/52145918</guid><author>sauphy</author><pubDate>Sun, 07 Aug 2016 23:38:28 +0800</pubDate><description><![CDATA[1.空类、构造函数、成员函数都是不占用空间的，都是一个size为1，作为类的占位符，如何区分类


2.如果一个类含有虚函数，那么他的size将会是8（x64位）
2.1 virtual大小是否与系统平台相关？x64和x86
2.2 vptr和vtable的原理和数据结构如何？


3.构造函数的顺序
>>先基类的构造再子类(B -> SubB)


4.析构函数的顺序
]]></description><category></category></item><item><title><![CDATA[chat之学习笔记1]]></title><link>https://blog.youkuaiyun.com/sauphy/article/details/52108812</link><guid>https://blog.youkuaiyun.com/sauphy/article/details/52108812</guid><author>sauphy</author><pubDate>Wed, 03 Aug 2016 23:54:20 +0800</pubDate><description><![CDATA[1.ppp 通过串行实现P2P协议达到互联网连接。
  支持TCP/UDP
2.串口pppd之间进行数据交换
3.支持平台Linux & Solaris
4.ppp/scripts脚本用于建立连接基于PPP
5.[autopppd] Perl脚本
open(PIDFILE,">/var/run/autopppd.pid");
>>以写入的方式打开指定的文件
print(PIDFIL]]></description><category></category></item><item><title><![CDATA[C++之多线程网络安全的笔记]]></title><link>https://blog.youkuaiyun.com/sauphy/article/details/52089816</link><guid>https://blog.youkuaiyun.com/sauphy/article/details/52089816</guid><author>sauphy</author><pubDate>Mon, 01 Aug 2016 22:38:04 +0800</pubDate><description><![CDATA[【C++网络库muduo】
1.当析构函数遇到多线程
C++要求程序员管理对象的生命周期(CG管理),多线程之下很难管理。
一个对象被多个线程观察到，那么他的析构时机将变得模糊，出现多种竞态条件。
①析构对象时如何知道是否有其他线程在调度该成员函数？
②执行成员函数时，对象是否会被析构。
③调度成员函数之前，如何得知该对象还活着？


shared_ptr完美解决该静态问题
]]></description><category></category></item><item><title><![CDATA[C++之值语义与对象语义]]></title><link>https://blog.youkuaiyun.com/sauphy/article/details/52089717</link><guid>https://blog.youkuaiyun.com/sauphy/article/details/52089717</guid><author>sauphy</author><pubDate>Mon, 01 Aug 2016 22:20:56 +0800</pubDate><description><![CDATA[●iostream扩展
#include   // 是不是太重量级了？


class Date
{
  public:
  Date(int year, int month, int day)
    : year_(year), month_(month), day_(day)
  {
  }


  void writeTo(std::ostream& os) co]]></description><category></category></item><item><title><![CDATA[C++之网络陷阱]]></title><link>https://blog.youkuaiyun.com/sauphy/article/details/52089402</link><guid>https://blog.youkuaiyun.com/sauphy/article/details/52089402</guid><author>sauphy</author><pubDate>Mon, 01 Aug 2016 21:40:52 +0800</pubDate><description><![CDATA[●多线程服务器模型
  one loop per thread.
  多线程发挥多核CPU的效率
●muduo网络库 86元
●术语
  Observer
  Reactor
  Sigleton
  override覆写
  dereference提领指针
●同步原语
  互斥锁、读写锁、条件变量、信号量
●网络编程的坑爹陷阱
1.程序在本机测试正常，放到网络运行上就经]]></description><category></category></item><item><title><![CDATA[C++之map的数据结构表示]]></title><link>https://blog.youkuaiyun.com/sauphy/article/details/52089245</link><guid>https://blog.youkuaiyun.com/sauphy/article/details/52089245</guid><author>sauphy</author><pubDate>Mon, 01 Aug 2016 21:19:49 +0800</pubDate><description><![CDATA[●关联容器(也是ADT 抽象数据类型)
  map,set,multiset,multimap
●有序容器
  vector,list


1.std::map底层的数据结构为平衡二叉树(红黑树)进行实现。
2.二叉搜索树结构(代码)
class Node:
    def __init__(self, data,color,parent):
        self.left]]></description><category></category></item><item><title><![CDATA[c++之String类的尝试版本]]></title><link>https://blog.youkuaiyun.com/sauphy/article/details/52089017</link><guid>https://blog.youkuaiyun.com/sauphy/article/details/52089017</guid><author>sauphy</author><pubDate>Mon, 01 Aug 2016 20:54:17 +0800</pubDate><description><![CDATA[#include 
#include 
#include 

namespace trivial
{

// A trivial String class that designed for write-on-paper in an interview
class String
{
 public:
  String()
    : data_(new char[1])
  {
    *data]]></description><category></category></item><item><title><![CDATA[C之基于signal实现定时器的demon]]></title><link>https://blog.youkuaiyun.com/sauphy/article/details/51626976</link><guid>https://blog.youkuaiyun.com/sauphy/article/details/51626976</guid><author>sauphy</author><pubDate>Fri, 10 Jun 2016 13:07:09 +0800</pubDate><description><![CDATA[#include 
#include 
#include 


void sigroutine(int dunno) { /* 信号处理例程，其中dunno将会得到信号的值 */
	printf("signal id=%d\n",dunno);
	switch (dunno) { 
		case 1: 
			printf("Get a signal -- SIGHUP "); 
			break]]></description><category></category></item><item><title><![CDATA[php之socket网络操作类]]></title><link>https://blog.youkuaiyun.com/sauphy/article/details/51097760</link><guid>https://blog.youkuaiyun.com/sauphy/article/details/51097760</guid><author>sauphy</author><pubDate>Fri, 08 Apr 2016 16:36:14 +0800</pubDate><description><![CDATA[## mysocket.php
<?php

class Connector
{
	public static $instance=null;
	public $conn;
	
	private function __construct()
	{
			set_time_limit(0);
			$ip = '192.168.238.1';
			$port = 8888;
			
			if(]]></description><category></category></item><item><title><![CDATA[xmind]]></title><link>https://blog.youkuaiyun.com/sauphy/article/details/51045664</link><guid>https://blog.youkuaiyun.com/sauphy/article/details/51045664</guid><author>sauphy</author><pubDate>Sat, 02 Apr 2016 21:51:55 +0800</pubDate><description><![CDATA[WIFI
百度==+
百度==+
WIFI
百度==+]]></description><category></category></item><item><title><![CDATA[python之js/url/python互动]]></title><link>https://blog.youkuaiyun.com/sauphy/article/details/51038387</link><guid>https://blog.youkuaiyun.com/sauphy/article/details/51038387</guid><author>sauphy</author><pubDate>Fri, 01 Apr 2016 17:22:45 +0800</pubDate><description><![CDATA[## 前端页面
function run(sCmd,arg)
{
	var baseUrl = "http://192.168.2.250:50000/";
	var cmd = baseUrl + sCmd + "++" + arg + "++null";
	document.location = cmd;
}



[+]


## 中间服务
import os,sys,plat]]></description><category></category></item><item><title><![CDATA[shell之wget]]></title><link>https://blog.youkuaiyun.com/sauphy/article/details/51035147</link><guid>https://blog.youkuaiyun.com/sauphy/article/details/51035147</guid><author>sauphy</author><pubDate>Fri, 01 Apr 2016 10:59:16 +0800</pubDate><description><![CDATA[功能
支持断点下传功能
同时支持FTP和HTTP下载方式
支持代理服务器
设置方便简单
程序小，完全免费
用法下载单个文件
wget http://www.minjieren.com/wordpress-3.1-zh_CN.zip下载单个文件并重名民
wget -O x.zip http://www.minjieren.com/wordpress-3.1-zh_CN.zip
wget -O word]]></description><category></category></item><item><title><![CDATA[shell之traceroute命令]]></title><link>https://blog.youkuaiyun.com/sauphy/article/details/51034685</link><guid>https://blog.youkuaiyun.com/sauphy/article/details/51034685</guid><author>sauphy</author><pubDate>Fri, 01 Apr 2016 10:24:31 +0800</pubDate><description><![CDATA[原理主机通过发送TTL为不同值(1-n)直到到达目的地的包，经过路由到达目的地。 
每个路由节点默认测试3次。 
①中间节点：TTL减为0，返回一个 [ICMP time exceeded]消息。 
②目标节点：服务器特殊端口接受，返回一个 [ICMP port unreachable] 消息。用法traceroute www.baidu.com1  192.168.74.2 (192.168.74]]></description><category></category></item></channel></rss>