<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[sin0803的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/sin0803</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sin0803]]></copyright><item><title><![CDATA[sqlite3在海思3516C平台上的移植过程讲解]]></title><link>https://blog.youkuaiyun.com/sin0803/article/details/77995633</link><guid>https://blog.youkuaiyun.com/sin0803/article/details/77995633</guid><author>sin0803</author><pubDate>Fri, 15 Sep 2017 20:53:17 +0800</pubDate><description><![CDATA[1、sqlit3 源码下载

https://www.sqlite.org/download.html


请下载 sqlite-autoconf-3200100.tar.gz 这个文件



注意：以下步骤不需要root用户权限。
2、源码包解压
cd
$ mkdir sqlite3                                    #创建工作目录
]]></description><category></category></item><item><title><![CDATA[获取文件大小]]></title><link>https://blog.youkuaiyun.com/sin0803/article/details/77995495</link><guid>https://blog.youkuaiyun.com/sin0803/article/details/77995495</guid><author>sin0803</author><pubDate>Fri, 15 Sep 2017 20:38:21 +0800</pubDate><description><![CDATA[介绍两种获取文件大小的方法：

1、使用ftell函数
函数原型：long ftell(FILE *stream);
注意：因为ftell返回long型，根据long型的取值范围（-2147483648～2147483647），故对大于2.1G的文件进行操作时出错。

此种以打开文件的方法取得文件的大小，不适合大文件，并且可能会出现访问冲突(比如正在下载的文件)，效率也比较低。

]]></description><category></category></item><item><title><![CDATA[面试经常问到的问题（自己记录）]]></title><link>https://blog.youkuaiyun.com/sin0803/article/details/77102014</link><guid>https://blog.youkuaiyun.com/sin0803/article/details/77102014</guid><author>sin0803</author><pubDate>Fri, 11 Aug 2017 18:29:18 +0800</pubDate><description><![CDATA[1、数组和指针的区别
2、进程间通信
3、TCP UDP区别
4、写一个链表
5、C++ 函数重载
6、内存相关的
7、static  voliate 作用
8、以前做过的项目]]></description><category></category></item><item><title><![CDATA[字符串转数字，数字转字符串程序]]></title><link>https://blog.youkuaiyun.com/sin0803/article/details/77101897</link><guid>https://blog.youkuaiyun.com/sin0803/article/details/77101897</guid><author>sin0803</author><pubDate>Fri, 11 Aug 2017 18:18:17 +0800</pubDate><description><![CDATA[最近面试发现这两个题问的比较多，就把网上的一些算法总结一下：
void int2str(int n, char *str){
	char buf[10] = "";
	int i = 0;
	int len = 0;
	int temp = n < 0 ? -n: n;  // temp为n的绝对值

	if (str == NULL)
	{
		return;
	}
	
	while(temp]]></description><category></category></item><item><title><![CDATA[Linux 内存分配，malloc(), free(),calloc(),realloc()用法]]></title><link>https://blog.youkuaiyun.com/sin0803/article/details/76730307</link><guid>https://blog.youkuaiyun.com/sin0803/article/details/76730307</guid><author>sin0803</author><pubDate>Sun, 06 Aug 2017 00:27:54 +0800</pubDate><description><![CDATA[1、内存分类
1、堆栈区（stack）：由编译器自动分配与释放，存放函数的参数值，局部变量，临时变量等等，它们获取的方式都是由编译器自动执行的。
2、堆区（heap）：一般由程序员分配与释放，基程序员不释放。
3、全局区（静态区）（static）：全局变量和静态变量的存储是放在一块儿的，初始化的全局变量和静态变量在一块区域，未初始化的全局变量和未初始化的静态变量在相邻的另         一]]></description><category></category></item><item><title><![CDATA[Linux 网络编程常用函数详解]]></title><link>https://blog.youkuaiyun.com/sin0803/article/details/46849961</link><guid>https://blog.youkuaiyun.com/sin0803/article/details/46849961</guid><author>sin0803</author><pubDate>Sun, 12 Jul 2015 14:16:42 +0800</pubDate><description><![CDATA[sendto（经socket传送数据）



相关函数
send , sendmsg,recv , recvfrom , socket


表头文件
#include 
#include 


定义函数
int sendto ( int s , const void * msg, int len, unsigned int flags, const 
struct s]]></description><category></category></item><item><title><![CDATA[TCP/IP 组播编程]]></title><link>https://blog.youkuaiyun.com/sin0803/article/details/46814511</link><guid>https://blog.youkuaiyun.com/sin0803/article/details/46814511</guid><author>sin0803</author><pubDate>Thu, 09 Jul 2015 11:21:59 +0800</pubDate><description><![CDATA[组播描述

　　组播（Multicast）是网络一种点对多（one to many）的通信方式，通过报文复制完成网络中一台server对应多台接收者的高效数据传送。对其形象的比喻就是类似于广播电台和电视台节目的发送。电台或电视台向特定频道发送他们的节目，而接收者可以根据自己的喜好选择频道来收听或收看节目。

       传统网络的通信方式单播（Unicast）在许多场合下并不合适，如果强]]></description><category></category></item><item><title><![CDATA[Linux网络编程 之 UDP 组播实例]]></title><link>https://blog.youkuaiyun.com/sin0803/article/details/46814501</link><guid>https://blog.youkuaiyun.com/sin0803/article/details/46814501</guid><author>sin0803</author><pubDate>Thu, 09 Jul 2015 11:21:18 +0800</pubDate><description><![CDATA[一个很简单udp 组播通信的例子，分别为服务器端和客户端的代码。




1、服务器端代码 (multi_udp_server.c)







[objc] view
 plaincopy






#include   
#include   
#include   
#include   
#include   
#include]]></description><category></category></item><item><title><![CDATA[Linux网络编程 之 UDP 广播 .]]></title><link>https://blog.youkuaiyun.com/sin0803/article/details/46814485</link><guid>https://blog.youkuaiyun.com/sin0803/article/details/46814485</guid><author>sin0803</author><pubDate>Thu, 09 Jul 2015 11:20:35 +0800</pubDate><description><![CDATA[在网上搜了很多资料 ，其中周立发的博客对我的学习参考作用最大，谢谢前辈。

这个倒让我花的时间最多了，主要一直脑残的在自己的虚拟机上调试不成功，认为只要开几个终端就可以当作服务器了，这种想法是错误的。因为ip地址会被占用的，所以后来我和同事测试一下，就OK了。

这个广播代码逻辑其实挺有用的，可以用来寻找所在局域网内设备。

逻辑就是：客户端一直发广播，当服务器收到这个广播，则向客户端]]></description><category></category></item><item><title><![CDATA[Socket编程知识必学]]></title><link>https://blog.youkuaiyun.com/sin0803/article/details/46814449</link><guid>https://blog.youkuaiyun.com/sin0803/article/details/46814449</guid><author>sin0803</author><pubDate>Thu, 09 Jul 2015 11:18:45 +0800</pubDate><description><![CDATA[端口号常识:

端口号由一个十六位的数字组成，取值范围是1 -- 65535，其中1 -- 1023 是保留端口号，固定给一些常用服务使用，1024 -- 65535是临时端口号，可自由使用。   

 端口号被从1 开始分配。
 每个网络通信循环地进出主计算机的TCP 应用层。它被两个所连接的号码唯一地识别，即网址（ip）和端口号，这两个号码合起来就组成了套接字。


套接字的三]]></description><category></category></item><item><title><![CDATA[HTTP协议详解]]></title><link>https://blog.youkuaiyun.com/sin0803/article/details/46814387</link><guid>https://blog.youkuaiyun.com/sin0803/article/details/46814387</guid><author>sin0803</author><pubDate>Thu, 09 Jul 2015 11:15:38 +0800</pubDate><description><![CDATA[当今web程序的开发技术真是百家争鸣，ASP.NET, PHP, JSP，Perl, AJAX 等等。 无论Web技术在未来如何发展，理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了Web应用程序的内部工作. 本文将对HTTP协议进行详细的实例讲解，内容较多，希望大家耐心看。也希望对大家的开发工作或者测试工作有所帮助。使用Fiddler工具非常方便地捕获HTTP Request和HT]]></description><category></category></item><item><title><![CDATA[Makefile中的wildcard用法]]></title><link>https://blog.youkuaiyun.com/sin0803/article/details/46356105</link><guid>https://blog.youkuaiyun.com/sin0803/article/details/46356105</guid><author>sin0803</author><pubDate>Thu, 04 Jun 2015 09:30:58 +0800</pubDate><description><![CDATA[原文：http://blog.youkuaiyun.com/liangkaiming/article/details/6267357


在Makefile规则中，通配符会被自动展开。但在变量的定义和函数引用时，通配符将失效。这种情况下如果需要通配符有效，就需要使用函数“wildcard”，它的用法是：$(wildcard
 PATTERN...) 。在Makefile中，它被展开为已经存在的、使用空]]></description><category></category></item><item><title><![CDATA[getaddrinfo(),freeaddrinfo(), gai_strerror()函数详解]]></title><link>https://blog.youkuaiyun.com/sin0803/article/details/46325637</link><guid>https://blog.youkuaiyun.com/sin0803/article/details/46325637</guid><author>sin0803</author><pubDate>Tue, 02 Jun 2015 10:58:07 +0800</pubDate><description><![CDATA[getaddrinfo(),freeaddrinfo(), gai_strerror()函数详解]]></description><category></category></item><item><title><![CDATA[struct sockaddr  struct sockaddr_in  struct sockaddr_un 结构详解]]></title><link>https://blog.youkuaiyun.com/sin0803/article/details/45896235</link><guid>https://blog.youkuaiyun.com/sin0803/article/details/45896235</guid><author>sin0803</author><pubDate>Thu, 21 May 2015 20:13:27 +0800</pubDate><description><![CDATA[1、在linux环境下，结构体struct sockaddr在/usr/include/linux/socket.h中定义，具体如下：
typedef unsigned short       sa_family_t;

struct sockaddr
{
        sa_family_t     sa_family;      /* address family, AF_xxx     ]]></description><category></category></item><item><title><![CDATA[LVM 学习总结（一）——基本概念及术语]]></title><link>https://blog.youkuaiyun.com/sin0803/article/details/45540143</link><guid>https://blog.youkuaiyun.com/sin0803/article/details/45540143</guid><author>sin0803</author><pubDate>Wed, 06 May 2015 20:04:30 +0800</pubDate><description><![CDATA[注意：文章中有些信息是从网上找的资料学习过程中抄的。
一、LVM基本定义
  LVM(Logical Volume Manager)，它是Linux环境下对磁盘分区进行管理的一种机制，LVM是建立在硬盘和分区之上的一个逻辑层，可以弹性的增加或减小分区的大小，使得磁盘分区管理更具灵活性。LVM的实现示意图：



二、LVM基本概念

0、物理存储介质(The physical me]]></description><category></category></item><item><title><![CDATA[链栈]]></title><link>https://blog.youkuaiyun.com/sin0803/article/details/44754809</link><guid>https://blog.youkuaiyun.com/sin0803/article/details/44754809</guid><author>sin0803</author><pubDate>Mon, 30 Mar 2015 18:33:50 +0800</pubDate><description><![CDATA[原文地址：http://blog.chinaunix.net/uid-25885064-id-3803454.html

栈（Stack）是限制在表的一端进行插入和删除运算的线性表。通常称插入、删除的这一端为栈顶（Top），另一端称为栈底（Bottom）。当表中没有元素时称为空栈。栈为后进先出（Last
 In First Out）的线性表，简称为LIFO表。栈的修改是按后进先出的原则进行。]]></description><category></category></item><item><title><![CDATA[大端，小端，网络字节序总结]]></title><link>https://blog.youkuaiyun.com/sin0803/article/details/43937397</link><guid>https://blog.youkuaiyun.com/sin0803/article/details/43937397</guid><author>sin0803</author><pubDate>Wed, 25 Feb 2015 14:42:38 +0800</pubDate><description><![CDATA[1、术语“小端”和“大端”
术语“小端”和“大端”表示多字节值的哪一端(小端或大端)存储在该值的起始地址。小端存在起始地址，即是小端字节序；大端存在起始地址，即是大端字节序。
即：
1.小端法(Little-Endian)就是低位字节排放在内存的低地址端即该值的起始地址，高位字节排放在内存的高地址端。 
2.大端法(Big-Endian)就是高位字节排放在内存的低地址端即该值的起始地址，低]]></description><category></category></item><item><title><![CDATA[经典面试题]]></title><link>https://blog.youkuaiyun.com/sin0803/article/details/43936897</link><guid>https://blog.youkuaiyun.com/sin0803/article/details/43936897</guid><author>sin0803</author><pubDate>Wed, 25 Feb 2015 13:42:03 +0800</pubDate><description><![CDATA[1、局部变量能否和全局变量重名？
　　答：能，局部会屏蔽全局。要用全局变量，需要使用 ":: "。
　　局部变量可以与全局变量同名，在函数内引用这个变量时，会用到同名的局部变量，而不会用到全局变量。对于有些编译器而言，在同一个函数内可以定义多个同名的局部变量，比如在两个循环体内都定义一个同名的局部变量，而那个局部变量的作用域就在那个循环体内。



2、如何引用一个已经定义过的全局变量]]></description><category></category></item><item><title><![CDATA[c语言中经常出错，混淆的地方]]></title><link>https://blog.youkuaiyun.com/sin0803/article/details/43936713</link><guid>https://blog.youkuaiyun.com/sin0803/article/details/43936713</guid><author>sin0803</author><pubDate>Wed, 25 Feb 2015 13:15:59 +0800</pubDate><description><![CDATA[一、指针相关
*p++，由于++和*同优先级，结合方向自右而左，等价于*(p++)。
*(p++)与*(++p)作用不同。若p的初值为a，则*(p++)等价a[0]，*(++p)等价a[1]。
(*p)++表示p所指向的元素值加1。
 
如果p当前指向a数组中的第i个元素，则 
*(p--)相当于a[i--]；
*(++p)相当于a[++i]；
*(--p)相当于a[--i]；
]]></description><category></category></item><item><title><![CDATA[使用指针作为函数返回值和参数的问题总结]]></title><link>https://blog.youkuaiyun.com/sin0803/article/details/43567631</link><guid>https://blog.youkuaiyun.com/sin0803/article/details/43567631</guid><author>sin0803</author><pubDate>Fri, 06 Feb 2015 18:49:30 +0800</pubDate><description><![CDATA[1、内存分配方式
　　内存分配方式有三种：

　　（1）从静态存储区域分配。内存在程序编译的时候就已经分配好，这块内存在程序的整个运行期间都存在。例如全局变量，static  变量。

　　（2）在栈上创建。在执行函数时，函数内局部变量的存储单元都可以在栈上创建，函数执行结束时这些存储单元自动被释放。栈内存分配运算内置                   于处理器的指令集中，效 率很高，]]></description><category></category></item></channel></rss>