自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

想法驱动实践!

因理想而坚持,因技术而快乐!

  • 博客(96)
  • 收藏
  • 关注

原创 URI和URL的简单区分

Uniform Resource Locators 或 URL。典型的例子是 http://www.cisco.com/en/US/partners/index.html。 Uniform Resource Identifier (URI):Generic Syntax”,是一个 Internet Standard。按照 URI 标准,上面的第一个例子 —— http://

2015-08-27 14:36:52 614

转载 Nginx基本数据结构之ngx_http_request_t结构体

原文转自: Nginx学习之三-ngx_http_request_t结构体ngx_http_request_s是nginx中非常重要的一个结构体,贯穿于htpp请求处理的整个过程中。下面解释了ngx_http_request_s结构体中与HTTP框架相关的重要的成员变量。[cpp] view plaincopyprint?

2015-08-23 21:46:39 839

原创 Nginx的常用命令(基本操作)

1.启动Nginxhadoop@Ubuntu-2:/usr/local/nginx/sbin$ sudo ./nginx[sudo] password for hadoop: hadoop@Ubuntu-2:/usr/local/nginx/sbin$2.停止Nginxhadoop@Ubuntu-2:/usr/local/nginx/sbin$ sudo ./nginx -

2015-08-20 16:11:07 667

原创 Niginx的几十个第三方模块(来源:http://wiki.nginx.org/3rdPartyModules)

资源来源:http://wiki.nginx.org/3rdPartyModules提醒:These modules are not officially supported and may not be compatible across versions of Nginx. Nevertheless many of them may prove useful to many peopl

2015-08-19 20:05:59 730

原创 C程序设计----指针和数组

1.ANSI C 使用类型void* 代替char *作为通用指针类型,即一个指向void类型的指针可以存放任何类型的指针,但它不能间接引用其自身;2.指针和整数之间不能相互转换,但0是唯一的例外:常量0可以赋值给指针,指针也可以与常量0比较。程序中常用常量NULL代替0,符号常量NULL定义在标准头文件中;3.

2015-08-16 17:17:10 509

转载 Nginx基本数据结构之ngx_chain_t

nginx的filter模块在处理从别的filter模块或者是handler模块传递过来的数据(实际上就是需要发送给客户端的http response)。这个传递过来的数据是以一个链表的形式(ngx_chain_t)。而且数据可能被分多次传递过来。也就是多次调用filter的处理函数,以不同的ngx_chain_t。该结构被定义在src/core/ngx_buf.h|c。下面我们来看一下n

2015-08-14 10:57:27 1140

转载 Nginx基本数据结构之ngx_array_t

ngx_array_t是nginx内部使用的数组结构。nginx的数组结构在存储上与大家认知的C语言内置的数组有相似性,比如实际上存储数据的区域也是一大块连续的内存。但是数组除了存储数据的内存以外还包含一些元信息来描述相关的一些信息。下面我们从数组的定义上来详细的了解一下。ngx_array_t的定义位于src/core/ngx_array.c|h里面。typedef struct

2015-08-13 20:50:56 486

转载 Nginx基本数据结构之ngx_str_t

nginx的作者为追求极致的高效,自己实现了很多颇具特色的nginx风格的数据结构以及公共函数。比如,nginx提供了带长度的字符串,根据编译器选项优化过的字符串拷贝函数ngx_copy等。所以,在我们写nginx模块时,应该尽量调用nginx提供的api,尽管有些api只是对glibc的宏定义。本节,我们介绍string、list、buffer、chain等一系列最基本的数据结构及相关api的使

2015-08-13 20:19:54 597

原创 MySQL数据库ERROR 1030 (HY000): Got error 28 from storage engine

PS:网上搜了很多,都不能解决,基本都是同一个文章转来转去,现将我的方法罗列如下。1.找准问题  这类错误基本就是磁盘临时空间不足导致。 2.解决方法清理  /dev/sda1。3.具体步骤:系统安装Ubuntu后,给Ubuntu的分区不够大,Google了一下Ubuntu系统的清理磁盘空间。提示 1:清理残余的配置文件一般而言,当我们从

2015-08-12 20:55:49 861

原创 利用ajax和JSP技术实现网页中表单的局部刷新(只刷新表单数据,而不刷新整个页面)

在web开发中有时有局部刷新的需求,这样做的好处是克服了页面整体刷新对网络速度受限的情况。1.MySQL数据表如下(简单举例):表名:stu_infostuId                 int                    PK    NNstuName        varchar(45)              NNstuDesc

2015-08-12 14:48:14 11108

转载 MySQL-终端基本操作

注意:MySQL数据库命令不区分大小写。但在MAC的终端,如果你想使用tab自动补全命令,那么你就必须使用大写,这样MAC的终端才会帮你补全命令,否则你按N遍tab都不会有响应。1、数据库(database)管理1.1 create 创建数据库1.2 show 查看所有数据库1.3 alter 修改数据库1.4 use 使用数据库1.5 查看当前使用

2015-07-25 16:43:11 538

转载 Nginx作为反向代理的简单应用

原文:http://zhou123.blog.51cto.com/4355617/840837对于Nginx的反向代理主要在四个方面:1、URL重写 URL rewirte2、反向代理 reverse proxy 并启用缓存功能 3、负载均衡4、安装第三方模块,实现健康状态检测。  关于一些Nginx的应用,可以在Nginx的官方网站上看到,内容介绍的也相当

2015-07-16 16:14:17 1550

转载 Linux下的nginx的安装

原文:http://blog.csdn.net/zhutulang/article/details/37778603参考:1、http://wenku.baidu.com/link?url=D4IHXXeY_k1zHuSJisbFJICMEbHleYwOUq9kw5tRlhIKEN-qcxsOwN5IeQutZJeoAwq0K09NJPw_iuf38YK6oYfVmjTXLnCFI

2015-07-13 11:40:24 479

转载 VMware虚拟机配置Ubuntu桥接方式(Bridged)使虚拟机和宿主机能互相ping通

原文连接1、设置Bridged上网方式Vmware菜单栏VM->settings->Network Adapter或者Ctrl+D2、查看Bridged状态Vmware菜单栏Edit->Virtual Network Editor要设置成以上bridged模式,先关闭虚拟机,不关闭设置会提示只有虚拟机在power off状态才能设置,选择VMnet0,点击左下角

2015-06-11 16:04:11 634

转载 linux下安装boost

(一). 在Terminal中分别执行以下3步安装boost:1. 下载后进入压缩包所在目录解压: sudo tar -zxvf boost_1_52_0.tar.gz2. 进入./boost_1_52_0,运行: sudo ./bootstrap.sh --prefix=/usr  /usr 可替换为任意路径  (事前运行./bootstrap.sh --help 看下参数说明)

2015-06-10 16:05:38 509

原创 UNPv13e中源代码编译(即如何使用头文件unp.h问题)

1.下载代码:官方下载http://www.unpbook.com/src.html2.安装依赖库:sudo apt-get install libbsd-dev3.解压并进入解压后的文件夹(我的是解压到/root/unpv13e)tar -zxvf unpv13e.tar.gz unpv13e4.按照README中的指导步骤进行(其中很详细)            QU

2015-04-19 22:12:01 2869

原创 makefile入门举例(简单写)

1.首先准备所需的target和files:  按照makefile的基本格式,如下图所示.      图片来源:Makefiles in Linux: An Overviewtarget为calculate。files为main.c,add.c , divide.c , minus, multiply.c ,math.c ,代码分别如下:main.c代码如下:

2015-04-01 19:41:36 609

转载 Makefile 详解

写的很好,选择性的看了,先转了,供后面查阅。     作者blog:http://blog.csdn.net/haoel概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和 professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编

2015-03-31 22:18:58 465

原创 UNIX环境高级编程---读后感

写在前面:本文只是自己对读这本的小结和感想,纯属个人观点。      (1)本书内容丰富,例子深入浅出,但还需自己多实践      总的来说,这本书还是不错的。前6章内容比较基础,主要涉及UNIX相关基础、标准及实现,文件I/O、文件和目录相关操作,标准I/O库和系统书籍文件和信息,内容比较详实,通俗易懂。第7、8.、9、13、15、16、17章,主要讲进程,包括进程环境、进程控制

2015-03-29 15:11:56 1099

转载 strtok()函数解释

#include char *strtok(char *str, const char *delim);char *strtok_r(char *str, const char *delim, char **saveptr);功能:分解字符串为一组标记串。str为要分解的字符串,delim为分隔符字符串。说明:首次调用时,str必须指向要分解的字符串,随后调用要把s设成NULL。

2015-03-27 22:17:53 984 1

原创 atoi()函数解释

原型:int  atoi (const  char  *nptr)    用法:#include      功能:将字符串转换成整型数;atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负号才开始做转换,而再遇到非数字或字符串时('\0')才结束转化,并将结果返回。    说明:atoi()函数返回转换后的整型数。    举例:#incl

2015-03-27 22:13:39 638

转载 printf中的 %.*s格式解释

小数点.后“*”表示输出位数,具体的数据来自参数表printf格式字符串中,与宽度控制和精度控制有关的常量都可以换成变量,方法就是使用一个“*”代替那个常量,然后在后面提供变量给“*”。同样,小数点.前也可以添加*,也要用户输入一个位宽值来代替,表示输出的字符所占位宽。[html] view plaincopy#include c

2015-03-27 22:08:00 1958

原创 C语言中offsetof(TYPE,MEMBER)宏的解释

offsetof(TYPE, MEMBER)该宏在Linux内核代码中定义如下:#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER);解释:(TYPE *)0,将 0 强制转换为 TYPE 型指针,记 p = (TYPE *)0,p是指向TYPE的指针,它的值是0。那么 p->MEMBER 就是 M

2015-03-26 19:55:24 1702

原创 strtol函数详解

strtol(3) - Linux man pageNamestrtol, strtoll, strtoq - convert a string to a long integerSynopsis#include stdlib.h>long intstrtol(const char *nptr, char **endptr, int base);long long in

2015-03-26 17:01:53 1563

原创 C语言中的"%p"格式解释

格式控制符“%p”中的p是pointer(指针)的缩写。指针的值是语言实现(编译程序)相关的,但几乎所有实现中,指针的值都是一个表示地址空间中某个存储器单元的整数。printf函数族中对于%p一般以十六进制整数方式输出指针的值,附加前缀0x。示例:int i = 1;printf("%p",&i);相当于int i = 1;printf("0x%x",&i);对于32位

2015-03-22 15:05:11 6440

转载 sscanf()函数总结

sscanf() 的作用:从一个字符串中读进与指定格式相符的数据.原型: int sscanf (const char *str,const char * format,........);说明: sscanf()会将参数str的字符串根据参数format字符串来转换并格式化数据。转换后的结果存于对应的参数内。成功则返回参数数目,失败则返回0。注意:ssca

2015-03-21 17:01:13 550

原创 UNIX /Linux中的memcpy函数用法详解

原型:extern void *memcpy(void *dest, void *src, unsigned int count);用法:#include 功能:由src所指内存区域复制count个字节到dest所指内存区域。说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。举例:      // memcpy.

2015-03-19 21:32:27 6711

转载 Linux ---#include <time.h>和 #include <sys/time.h>的区别

搜索了好几个,都是这么说的,有点看不明白。分析一下: 相同点: 二者都是与  日期时间相关的 头文件。不同点:   time.h 是c99的,也就是c的库函数。   sys/time.h是linux系统的。 time.h既然是c库函数,那么在具体的平台上,就就可以依靠平台而实现,所以看上去是与平台无关的,谁都可以调用.而 sys/ti

2015-03-14 12:08:54 8505

转载 Linux中的timeval结构

该结构体是Linux系统中定义,struct timeval结构体在time.h中的定义为:[cpp] view plaincopystruct timeval  {  __time_t tv_sec;        /* Seconds. */  __suseconds_t tv_usec;  /* Microseconds. 

2015-03-14 11:21:30 843

原创 UNIX环境高级编程中的11章程序11-2编译问题---undefined reference to `pthread_create'

#include#includepthread_t ntid;void printids(const char *s){ pid_t pid; pthread_t tid; pid=getpid(); tid=pthread_self(); printf("%s pid %lu tid %lu (0x%lx)\n",s,(unsigned long)pid,(un

2015-03-10 21:37:52 794

原创 UNIX/Linux 进程的挂起和恢复

进程的挂起及恢复#ctrl+z:挂起,程序放到后台,程序没有结束。#jobs:查看被挂起的程序工作号恢复进程执行时,有两种选择:fg命令将挂起的作业放回到前台执行;用bg命令将挂起的作业放到后台执行格式:fg 工作号;bg 工作号进程:正在执行的一个程序程序:是一种写好的代码或脚本&:后台执行,不占用终端如:xeyes &ps命令进程查看命令ps命令:p

2015-03-05 22:21:58 1447

转载 带外数据---详解

带外数据(out—of—band data),有时也称为加速数据(expedited data), 是指连接双方中的一方发生重要事情,想要迅速地通知对方。 这种通知在已经排队等待发送的任何“普通”(有时称为“带内”)数据之前发送。 带外数据设计为比普通数据有更高的优先级。 带外数据是映射到现有的连接中的,而不是在客户机和服务器间再用一个连接。 在字节流服

2015-03-05 21:09:48 520

转载 UNIX系统信号

SignalDescriptionSIGABRT由调用abort函数产生,进程非正常退出SIGALRM用alarm函数设置的 timer超时或setitimer函数设置的interval timer超时SIGBUS某种特定的硬件异常,通常由内存访问引起SIGCANCEL由Solaris Thread Library内部使用,通常不

2015-03-04 20:26:49 476

原创 UNIX/Linux 中的bg/fg/jobs命令解析

为了方便用户进行任务管理和控制,linux提供了bg/fg/jobs这几条命令来轻松调度任务。从以下命令执行来看,可以知道bg/fg/jobs这几条命令都是linux shell的特殊内建命令。所以在执行bg/fg/jobs这几条命令时,当前shell能够自己解释而不需要额外创建两个child process来完成这件事。$ which bg$ which fg$ wh

2015-03-04 19:49:44 1966

原创 Unix / Linux 的程序退出状态 exit status---相关解释

对于 *NIX 系统而言,每一条命令,不管是内置的,SHELL 函数还是外置的,当它退出时,都 会返回一个小整数给引用它的程序,这就是程序退出状态 ( exit status ).一般来讲,退出状态 0 表示正常执行,没有遭遇任何问题。其他非零的状态码均表示失败。在 shell 中,可以使用 $? 来访问最后一个程序的退出状态。下面是 POSIX 的结束状态:

2015-02-07 11:28:33 6850

转载 实际用户ID,有效用户ID与保存设置用户ID---相关解释

前段时间一直没搞明白这几个ID之间的关系,今天看到一篇博文,这才拨云见日,才有所了解了.real user ID:实际用户ID,指的是进程执行者是谁effective user ID:有效用户ID,指进程执行时对文件的访问权限saved set-user-ID:保存设置用户ID,作为effective user ID的副本,在执行exec调用时后能重新恢复原来的effect

2015-02-05 21:48:38 518

原创 进程fork()两次---解决一个进程不必等待子进程终止,也不希望子进程处于僵死状态(一般是服务器进程fork())

首先,要了解什么叫僵尸进程,什么叫孤儿进程,以及服务器进程运行所需要的一些条件。两次fork()就是为了解决这些相关的问题而出现的一种编程方法。 孤儿进程        孤儿进程是指父进程在子进程结束之前死亡(return 或exit)。如下图1所示:图1  孤儿进程但是孤儿进程并不会像上面画的那样持续很长时间,当系统发现孤儿进程时,init进程就收养孤儿进

2015-02-05 11:07:52 2503 1

原创 自动变量、静态变量、寄存器变量和易失变量的相关解释

自动变量  局部变量,如不作专门说明为静态变量,都是动态分配存储空间,存储在动态存储区中。这种变量叫自动变量。这种变量只在定义它们的时候才创建,在定义它们的函数返回时系统回收变量所占存储空间。对这些变量存储空间的分配和回收是由系统自动完成的,所以也叫自动变量。一般情况下,不作专门说明的局部变量,均是自动变量。自动变量也可用关键字auto作出说明。例如:(考虑到浏览器可能给作者本意要写在同一行的

2015-02-04 15:17:51 1990

原创 内存流问题---APUE程序5-15,对内存流的写入是如何在我们自己提供的缓冲区上操作的

1.首先贴下自己的代码(加入了一些打印语,句其中'#'代表‘\0‘)program5-15.c 运行环境:Linux 3.2.0#include#define BSZ 48int main(void){ FILE *fp; char buf[BSZ]; int i; memset(buf,'a',BSZ-2); printf("my buf0 %s---%ld--

2015-02-03 11:23:47 967 1

转载 APUE.2e程序清单4-7举例分析

分析apue2e上的程序清单4-7 递归降序遍历目录层次结构,并按文件类型计数 。分析环境:FreeBSD 6.2-RELEASE,i386。程序清单4-7,英文版即121页的Figure 4.22. Recursively descend a directory hierarchy, counting file type为了便于程序的分析,我把原ftw4.c中用到的程序清单2-3

2015-02-01 15:53:52 788

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除