<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ioscoder的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/embinux</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; embinux]]></copyright><item><title><![CDATA[UNIX Time]]></title><link>https://blog.youkuaiyun.com/embinux/article/details/84929246</link><guid>https://blog.youkuaiyun.com/embinux/article/details/84929246</guid><author>embinux</author><pubDate>Sun, 09 Dec 2018 16:38:10 +0800</pubDate><description><![CDATA[UNIX TimeCalendar Time1. time2. gettimeofdayBroken-Down TimeBroken-Down Time与字符串形式的互转1. struct tm转成字符串2. 字符串转struct tmBroken-Down Time 转日历时间(time_t)一个示例总结三种时间表示形式获取日历时间(time_t)的系统调用从日历时间(time_t)到日期时间(...]]></description><category></category></item><item><title><![CDATA[golang database/sql 包的使用]]></title><link>https://blog.youkuaiyun.com/embinux/article/details/84031620</link><guid>https://blog.youkuaiyun.com/embinux/article/details/84031620</guid><author>embinux</author><pubDate>Tue, 13 Nov 2018 16:50:00 +0800</pubDate><description><![CDATA[database/sql 包的使用
安装 mysql driver
$ go get -v github.com/go-sql-driver/mysql

创建连接池：sql.Open
func newPool() *sql.DB {
	cfg := mysql.NewConfig()
	cfg.User = &quot;root&quot;
	cfg.Passwd = &quot;xxxxxx&quot;
	cfg.Net = &quot;tc...]]></description><category></category></item><item><title><![CDATA[go 异常处理]]></title><link>https://blog.youkuaiyun.com/embinux/article/details/82776566</link><guid>https://blog.youkuaiyun.com/embinux/article/details/82776566</guid><author>embinux</author><pubDate>Wed, 19 Sep 2018 18:46:11 +0800</pubDate><description><![CDATA[go异常处理
func try(block func(), catch func(e interface{}), finally func()) {
	defer func() {
		e := recover() // 当block中panic时，recover将返回panic的参数
		if e != nil { // 当block中没有panic时，recover将返回nil
			catc...]]></description><category></category></item><item><title><![CDATA[AVL树]]></title><link>https://blog.youkuaiyun.com/embinux/article/details/80034695</link><guid>https://blog.youkuaiyun.com/embinux/article/details/80034695</guid><author>embinux</author><pubDate>Sat, 21 Apr 2018 22:58:51 +0800</pubDate><description><![CDATA[AVL 树


AVL 树是一种平衡的二叉搜索树（BST），它的结构和操作与BST都是一致的，只是多加了一个平衡条件
AVL树的平衡条件是：它的任一节点的左子树和右子树的高度差的绝对值小于等于1


概念回顾：


树的高度等于其根节点的高度
节点的高度等于该节点与它最下面的叶子节点之间的边数


由定义可知，叶子节点的高度为0 
为了便于计算，规定叶子节点的（假想的）子节点的高度为-1

那么判...]]></description><category></category></item><item><title><![CDATA[Binary Search Tree]]></title><link>https://blog.youkuaiyun.com/embinux/article/details/80012200</link><guid>https://blog.youkuaiyun.com/embinux/article/details/80012200</guid><author>embinux</author><pubDate>Thu, 19 Apr 2018 22:36:31 +0800</pubDate><description><![CDATA[Binary Search Tree （Go语言描述）

BST是一种有序的二叉树 
它的性质是： 
对于任意节点X，它的左子树的值都比它的值小，右子树的值都比它的值大。 
例如： 


如何在内存中表示这样的结构呢？ 
这个结构是如何构造的呢？ 
如何添加节点？ 
如何删除节点？ 
如何查找节点？

下面分别介绍bst的节点类型，及相关操作



- 节点类型定义

type node_t st...]]></description><category></category></item><item><title><![CDATA[TCP/IP 详解：arp 学习笔记]]></title><link>https://blog.youkuaiyun.com/embinux/article/details/78448950</link><guid>https://blog.youkuaiyun.com/embinux/article/details/78448950</guid><author>embinux</author><pubDate>Sun, 05 Nov 2017 13:23:11 +0800</pubDate><description><![CDATA[arp]]></description><category></category></item><item><title><![CDATA[iOS奔溃信息收集]]></title><link>https://blog.youkuaiyun.com/embinux/article/details/78423532</link><guid>https://blog.youkuaiyun.com/embinux/article/details/78423532</guid><author>embinux</author><pubDate>Thu, 02 Nov 2017 12:09:45 +0800</pubDate><description><![CDATA[奔溃信息收集，信号，异常]]></description><category></category></item><item><title><![CDATA[Run Loop]]></title><link>https://blog.youkuaiyun.com/embinux/article/details/78397755</link><guid>https://blog.youkuaiyun.com/embinux/article/details/78397755</guid><author>embinux</author><pubDate>Mon, 30 Oct 2017 21:43:15 +0800</pubDate><description><![CDATA[run loop]]></description><category></category></item><item><title><![CDATA[GCD 之dispatch source]]></title><link>https://blog.youkuaiyun.com/embinux/article/details/78367796</link><guid>https://blog.youkuaiyun.com/embinux/article/details/78367796</guid><author>embinux</author><pubDate>Fri, 27 Oct 2017 18:33:08 +0800</pubDate><description><![CDATA[dispatch source async gcd]]></description><category></category></item><item><title><![CDATA[ld script 学习笔记]]></title><link>https://blog.youkuaiyun.com/embinux/article/details/78357215</link><guid>https://blog.youkuaiyun.com/embinux/article/details/78357215</guid><author>embinux</author><pubDate>Thu, 26 Oct 2017 18:27:03 +0800</pubDate><description><![CDATA[ld script]]></description><category></category></item><item><title><![CDATA[GCD]]></title><link>https://blog.youkuaiyun.com/embinux/article/details/78357023</link><guid>https://blog.youkuaiyun.com/embinux/article/details/78357023</guid><author>embinux</author><pubDate>Thu, 26 Oct 2017 18:06:38 +0800</pubDate><description><![CDATA[gcd ios]]></description><category></category></item><item><title><![CDATA[公钥证书]]></title><link>https://blog.youkuaiyun.com/embinux/article/details/78341588</link><guid>https://blog.youkuaiyun.com/embinux/article/details/78341588</guid><author>embinux</author><pubDate>Wed, 25 Oct 2017 14:59:06 +0800</pubDate><description><![CDATA[公钥证书 证书]]></description><category></category></item><item><title><![CDATA[ipa重签名]]></title><link>https://blog.youkuaiyun.com/embinux/article/details/78340111</link><guid>https://blog.youkuaiyun.com/embinux/article/details/78340111</guid><author>embinux</author><pubDate>Wed, 25 Oct 2017 13:03:31 +0800</pubDate><description><![CDATA[ipa 重签名]]></description><category></category></item><item><title><![CDATA[消息认证码 hmac]]></title><link>https://blog.youkuaiyun.com/embinux/article/details/78328105</link><guid>https://blog.youkuaiyun.com/embinux/article/details/78328105</guid><author>embinux</author><pubDate>Tue, 24 Oct 2017 12:03:53 +0800</pubDate><description><![CDATA[hmac 消息认证码]]></description><category></category></item><item><title><![CDATA[hash函数]]></title><link>https://blog.youkuaiyun.com/embinux/article/details/78324300</link><guid>https://blog.youkuaiyun.com/embinux/article/details/78324300</guid><author>embinux</author><pubDate>Mon, 23 Oct 2017 22:36:27 +0800</pubDate><description><![CDATA[macOS iOS hash md5 sha1]]></description><category></category></item><item><title><![CDATA[iOS app 动态库注入]]></title><link>https://blog.youkuaiyun.com/embinux/article/details/78291055</link><guid>https://blog.youkuaiyun.com/embinux/article/details/78291055</guid><author>embinux</author><pubDate>Fri, 20 Oct 2017 00:37:55 +0800</pubDate><description><![CDATA[ios dylib 动态库 注入]]></description><category></category></item><item><title><![CDATA[对称密码]]></title><link>https://blog.youkuaiyun.com/embinux/article/details/78289328</link><guid>https://blog.youkuaiyun.com/embinux/article/details/78289328</guid><author>embinux</author><pubDate>Thu, 19 Oct 2017 20:54:35 +0800</pubDate><description><![CDATA[对称密码 AES DES CBC 加密 解密]]></description><category></category></item><item><title><![CDATA[创建ipa脚本]]></title><link>https://blog.youkuaiyun.com/embinux/article/details/77774805</link><guid>https://blog.youkuaiyun.com/embinux/article/details/77774805</guid><author>embinux</author><pubDate>Fri, 01 Sep 2017 16:42:18 +0800</pubDate><description><![CDATA[#!/bin/bashif test $# -ne 1
then
    echo 'usage: createipa file.app'
    exit 1
fiif test -e Payload
then
    rm -rf Payload
fimkdir Payloadappname=$(basename "$1")
apppath=$(dirname "$1")/"$appname"]]></description><category></category></item><item><title><![CDATA[Orange'S 第三章第二节实验]]></title><link>https://blog.youkuaiyun.com/embinux/article/details/77625906</link><guid>https://blog.youkuaiyun.com/embinux/article/details/77625906</guid><author>embinux</author><pubDate>Mon, 28 Aug 2017 00:22:49 +0800</pubDate><description><![CDATA[这个实验没有完全按照书上的来，这个实验对比第一小节只是增加了栈段，有了栈，就可以安全的使用C函数了desc.h 代码#include <stdint.h>// Type field
#define TYPE_DATA_RO          0
#define TYPE_DATA_RO_A        1
#define TYPE_DATA_RW          2
#define TYPE_D]]></description><category></category></item><item><title><![CDATA[Orange'S 第三章第一节实验]]></title><link>https://blog.youkuaiyun.com/embinux/article/details/77623236</link><guid>https://blog.youkuaiyun.com/embinux/article/details/77623236</guid><author>embinux</author><pubDate>Sun, 27 Aug 2017 21:17:53 +0800</pubDate><description><![CDATA[这个实验主要包含三部分第一部分是定义全局描述符表gdt，以及全局描述符表指针gdtr第二部分是16位代码段，主要工作有：
关中断
开启A20
开启保护模式
跳到保护模式
第三部分是32位代码段，往显存里写一个字母’p’分析首先第一部分是纯数据，可以用C语言来实现，代码如下：desc.h#include <stdint.h>// Type field
#define TYPE_DATA_RO]]></description><category></category></item></channel></rss>