Record and Summarize

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2013年12月30日

摘要: 起步本章介绍开始使用 Git 前的相关知识。我们会先了解一些版本控制工具的历史背景,然后试着让 Git 在你的系统上跑起来,直到最后配置好,可以正常开始开发工作。读完本章,你就会明白为什么 Git 会如此流行,为什么你应该立即开始使用它。1.1 关于版本控制什么是版本控制?我真的需要吗?版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。在本书所展示的例子中,我们仅对保存着软件源代码的文本文件作版本控制管理,但实际上,你可以对任何类型的文件进行版本控制。如果你是位图形或网页设计师,可能会需要保存某一幅图片或页面布局文件的所有修订版本(这或许是你非常渴望拥有的功能)。采用版本 阅读全文
posted @ 2013-12-30 20:43 zhangjing327 阅读(172) 评论(0) 推荐(0) 编辑

摘要: multiprocessing模块支持本地和远程并发,并且通过多进程的方式成功避免Global Interpreter Lock (GIL),因此该模块可以充分利用多处理器。1. Process类 class multiprocessing.Process(group=None, target=None, name=None, args=(), kwargs={}) 这个类表示运行在一个子进程中的任务。 target:是当进程启动时执行的被调函数。 args:传递给target的参数元组。 name:进程的名字,字符串。 ... 阅读全文
posted @ 2013-12-30 18:46 zhangjing327 阅读(872) 评论(0) 推荐(0) 编辑

摘要: 1、urllib2是Python的一个获取URLs(Uniform Resource Locators)的组件。他以urlopen函数的形式提供了一个非常简单的接口,这是具有利用不同协议获取URLs的能力;它同样提供了一个比较复杂的接口来处理一般情况,例如:基础验证,cookies,代理和其他,它们通过handlers和openers的对象提供。2、urllib2.urlopen(url, data=None, timeout=None) 参数 url:打开一个url,可以是字符串(如同urllib.urlopen的url参数),或是一个Request对象(这是special的地方) ... 阅读全文
posted @ 2013-12-30 18:45 zhangjing327 阅读(301) 评论(0) 推荐(0) 编辑

摘要: 1、该模块的用途 从制定的URL获取数据 对URL字符串进行格式化处理2、urllib.urlopen(url, data=None, proxies=None) 打开一个由url指定的网络对象 参数 url:符合URL规范的字符串(包括http,ftp,gopher,local-file标准) data:向指定的URL发送的数据字符串,GET和POST都可,但必须符合标准格式,格式为key=value&key1=value1.... proxies:代理服务器地址字典,如果未指定,在WINDOWS平台上则依据IE的设置,不支持需要验证的代理服务器。例如:proxie... 阅读全文
posted @ 2013-12-30 18:41 zhangjing327 阅读(379) 评论(0) 推荐(0) 编辑

摘要: python 多线程受制于Global Interpreter Lock(GIL)并不能充分利用多处理器,仅仅是多线程同步使用一个处理器,因此该模块适用于I/O为主的程序。1. Thread对象 class threading.Thread(group=None, target=None, name=None, args=(), kwargs={}) 使用上面函数创建一个新的Thread实例。 target:即线程的目标函数,线程启动时,run()方法将调用此函数。 name:线程的名字,是一个字符串;默认将创建一个“Thread-N”格式的唯一名称。... 阅读全文
posted @ 2013-12-30 18:32 zhangjing327 阅读(615) 评论(0) 推荐(0) 编辑

摘要: 1、正则表达式元字符介绍. 表示任意一个字符,默认不包括换行符号,如果使'.'包括任何字符。可以使用如下写法:pat = re.compile(r".*", re.DOTALL)pat.search(strvar)^ 表示一个字符串的开头$ 表示一个字符串的结尾* 表示对于前一个字符重复0到无穷次+... 阅读全文
posted @ 2013-12-30 18:20 zhangjing327 阅读(243) 评论(0) 推荐(0) 编辑

摘要: 一、字符编码 在最初的时候,Internet上只有一种字符集——ANSI的ASCII字符集,它使用7 bits来表示一个字符,总共表示128个字符,其中包括了英文字母、数字、标点符号等常用字符。之后,又进行扩展,使用8 bits表示一个字符,可以表示256个字符,主要在原来的7 bits字符集的基础上加入了一些特殊符号例如制表符。 后来,由于各国语言的加入,ASCII已经不能满足信息交流的需要,因此,为了能够表示其它国家的文字,各国在ASCII的基础上制定了自己的字符集,这些从ANSI标准派生的字符集被习惯的统称为ANSI字符集。这些派生字符集的特点是以ASCII 127 bits为基础,.. 阅读全文
posted @ 2013-12-30 17:46 zhangjing327 阅读(413) 评论(0) 推荐(0) 编辑

摘要: C/C++ 32位机器和64位机器差异问题总结#include size_t本身一个作用就是避免考虑64还是32。64位下Long和指针是64位的size_t m_unNo;sprintf(path,"%u",m_unNo); //这句在32位机器上正常64位机器上会编译警告:“警告:格式 ‘%u’ 需要类型 ‘unsigned int’,但实参 4 的类型为 ‘size_t’”//%u 对应 unsigned int在64位机器上还是32位,而size_t已经变成64位了。char* 指针在64位下是64位m_pMem = new char[nSize];int off 阅读全文
posted @ 2013-12-30 16:54 zhangjing327 阅读(734) 评论(0) 推荐(0) 编辑

摘要: 1、数据类型(1)pthread_t 线程句柄typedef unsigned long int pthread_t;(2)pthread_attr_t 线程属性typedef union{ char __size[__SIZEOF_PTHREAD_ATTR_T]; long int __align;} pthread_attr_t; Posix线程中的线程属性pthread_attr_t主要包括scope属性、detach属性、堆栈地址、堆栈大小、优先级。在pthread_create中,把第二个参数设置为NULL的话,将采用默认的属性配置。 pthread_attr_t的主要属性的... 阅读全文
posted @ 2013-12-30 16:45 zhangjing327 阅读(454) 评论(0) 推荐(0) 编辑

摘要: 注:最好将和都引入1、类型声明与结构体声明:(1)typedeflongtime_t; time_t实际是一个长整型。其值表示为从UTC(coordinateduniversaltime)时间1970年1月1日00时00分00秒(也称为Linux系统的Epoch时间)到当前时刻的秒数。由于time_t类型长度的限制,它所表示的时间不能晚于2038年1月19日03时14分07秒(UTC)。 UTC时间有时也称为GMT时间,其实UTC和GMT两者几乎是同一概念。它们都是指格林尼治标准时间,只不过UTC的称呼更为正式一点。两者区别在于前者是天文上的概念,而后者是基于一个原子钟。 time... 阅读全文
posted @ 2013-12-30 16:37 zhangjing327 阅读(199) 评论(0) 推荐(0) 编辑

摘要: 注意:凡是未标注函数所在头文件的均是unistd.h头文件中声明的函数1、pid_t fork(void); (1)pid_t 是一个宏定义,其实质是int(2)返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程ID;否则,出错返回-1(3)函数说明: 一个现有进程可以调用fork函数创建一个新进程。由fork创建的新进程被称为子进程(child process)。fork函数被调用一次但返回两次。两次返回的唯一区别是子进程中返回0值而父进程中返回子进程ID。子进程和父进程都会从调用点继续往下执行。 子进程是父进程的副本,它将获得父进程数据空间、堆、栈等资源的副本。注意,.. 阅读全文
posted @ 2013-12-30 16:29 zhangjing327 阅读(709) 评论(0) 推荐(0) 编辑

摘要: 具体使用见一、errno的由来 在C编程中,errno是个不可缺少的变量,特别是在网络编程中。如果你没有用过errno,那只能说明你的程序不够健壮。当然,如果你是WIN32平台的GetLastError(),效果也是一样的。 为什么会使用errno呢?个人认为,这是系统库设计中的一个无奈之举,他更多的是个技巧,而不是架构上的需要。我们观察下函数结构,可以发现,函数的参 数返回值只有一个,这个返回值一般可以携带错误信息,比如负数表示错误,而正数表述正确的返回值,比如recv函数。但是对于一些返回指针的函数, 如:char *get_str();这个方法显然没有用的。NULL可以表示发生错... 阅读全文
posted @ 2013-12-30 16:25 zhangjing327 阅读(599) 评论(0) 推荐(0) 编辑

摘要: 首先引入常用的几个头文件:#include // location:/usr/include/asm-generic/errno.h#include // location: /usr/include/netinet/types.h#include // location:usr/include/i386-linux-gnu/sys/socket.h#include // location:/usr/include/netinet/in.h#include // location:/usr/include/arpa/inet.h#include #i... 阅读全文
posted @ 2013-12-30 15:56 zhangjing327 阅读(217) 评论(0) 推荐(0) 编辑

摘要: 1、double atof(const char *nptr);(1)说明 把字符串转换成浮点数。(2)补充说明 函数 atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换(如果第一个非空格字符不存在或者不是数字也不是正负号则返回零),而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分,如123.456或123e-2。 返回值是返回转换后的浮点型数。 附加说明 atof()与使用strtod(nptr,(char**)NULL)结果相同。2、int atoi(c 阅读全文
posted @ 2013-12-30 15:43 zhangjing327 阅读(183) 评论(0) 推荐(0) 编辑

摘要: 1、main函数(1)两种形式 无参形式:int main( void ) 有参形式:int main( int argc, char *argv[] ) 除此之外,不存在其他形式。(2)返回值 联想linux下命令的返回值,若正常结束,则返回0;否则返回其他。 使用echo $?得到上一条命令的返回值。2、int remove(const char *filename)(1)说明 删除一个文件,但是如果它的filename参数是一个目录的话,其作用就相当于rmdir函数,即仅能删除空目录。(2)返回值 如果删除成功,remove返回0,否则返回EOF(-1)3、FILE * f... 阅读全文
posted @ 2013-12-30 15:38 zhangjing327 阅读(377) 评论(0) 推荐(0) 编辑