Record and Summarize

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

2013年12月30日

摘要: 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) 编辑

2013年12月29日

摘要: 结构体在内存中的存储形式先说明一下,以下的情况,默认结构体初始地址是0,我猜编译器默认也是这么做的。否则sizeof(类型)就无法判定了(注意括号里是类型,不是变量)。同时,本文中所说的不仅适用于结构体,例如共用体也是按照本文所说的进行内存分配,不过要比结构体简单得多。以下是两条原则:原则一:结构体中元素是按照定义顺序一个一个放到内存中去的,但并不是紧密排列的。从结构体存储的首地址开始,每一个元素放置到内存中时,它都会认为内存是以它自己的大小来划分的,因此元素放置的位置一定会在自己宽度的整数倍上开始。原则二:在经过第一原则分析后,检查计算出的存储单元是否为所有元素中最宽的元素的长度的整数倍,是 阅读全文
posted @ 2013-12-29 22:42 zhangjing327 阅读(975) 评论(0) 推荐(0) 编辑

摘要: 一、数据在内存中的存放方式数据在存放到内存里的时候,有两种存放方式,即:Big Endian 和 Little EndianBig Endian(大端模式/网络字节序):内存中的高位存放数据的低位,内存中的低位存放数据的高位Little Endian(小端模式/主机字节序/反字节序):内存中的高位存放数据的高位,内存中的低位存放数据的低位注:PowerPC系列采用big endian方式存储数据,而x86系列则采用little endian方式存储数据为了更好理解,比如数字0x12345678在两种不同字节序CPU中的存储顺序如下所示:Big Endian(符合正常的思维习惯) 低地址... 阅读全文
posted @ 2013-12-29 22:41 zhangjing327 阅读(944) 评论(0) 推荐(0) 编辑

摘要: 一、安装使用如下命令安装带PHP5支持的MySQL数据库:sudo apt-get install mysql-server安装过程中可能出现的错误:错误一:EnvironmentError: mysql_config not foundsh: mysql_config: not foundTrac... 阅读全文
posted @ 2013-12-29 22:20 zhangjing327 阅读(250) 评论(0) 推荐(0) 编辑