自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 收藏
  • 关注

转载 nginx lua

gx_lua 是一个 NGINX 的第三方扩展模块,它能够将 Lua 代码嵌入到 NGINX 中来执行。UPYUN CDN 大量使用了 NGINX 作为反向代理服务器,其中绝大部分的业务逻辑已经由 Lua 来驱动了。这个主题之前在 OSC 源创会 2014 北京站 和 SegmentFault D-Day 2015 南京站 有做过简单分享,Slide 在这里:《Using

2015-12-03 10:59:42 870

转载 ngx lua

第一个lua脚本ngx.say 是打印的打印输出的意思。。。location /echo {default_type text/plain;echo hello lua;}location /lua {default_type text/plain;content_by_lua 'ngx.say("hello world")';}用lua脚本做nginx的访问的限

2015-10-14 17:35:00 1141

转载 https server

最近在研究nginx,整好遇到一个需求就是希望服务器与客户端之间传输内容是加密的,防止中间监听泄露信息,但是去证书服务商那边申请证书又不合算,因为访问服务器的都是内部人士,所以自己给自己颁发证书,忽略掉浏览器的不信任警报即可。下面是颁发证书和配置过程。首先确保机器上安装了openssl和openssl-devel#yum install openssl#yum install o

2015-07-08 14:44:20 1203

转载 makefile 书写

一、 三个基本概念(注:本文所有的测试都是在 Linux 环境下进行的)  在Makefile中,最重要的三个概念是:目标(target)、依赖关系(dependency)和命令(command)。目标是指要干什么,即运行make后生成什么;依赖是指明目标所依赖的其他目标;命令则告诉make如何生成目标,这三个概念是通过Makefile中的规则(rule)关联在一起的。

2015-04-20 15:17:32 514

原创 nginx 源码分析 1 - 配置解析

看了nginx代码,感觉应该写点什么,记下来,自己以后慢慢看,很多还是浅浅的懂了那么点点看代码,首先进入的当然是main函数了,nginx.c -> main()进入后,是一堆的一些初始化局部变量有一个cycle, init_cycle 看代码可以看到,起初把一些配置信息都是放到init_cycle里面,然后通过把需要的本模块的配置指令都返回到cyc

2015-03-12 11:09:38 442

转载 网络包流程

发送:应用程序调用系统调用,将数据发送给socketsocket检查数据类型,调用相应的send函数send函数检查socket状态、协议类型,传给传输层tcp/udp(传输层协议)为这些数据创建数据结构,加入协议头部,比如端口号、检验和,传给下层(网络层)ip(网络层协议)添加ip头,比如ip地址、检验和如果数据包大小超过了mtu(最大数据包大小),则分片;ip将这些数据

2015-01-14 13:43:46 599

原创 ndk 编译调试

在交叉编译的时候,尤其是不同中语言之间的交叉编译,往往遇到问题后,会很让人头疼。。。这俩天在编译调试ndk的时候,就出现了!!之前ndk编译的各种so,给android调用一直都是好好的,过了一段时间,修复了一些bug后,再编译成so,然后给andorid调用的时候,莫名的崩溃,启动就崩溃,由于最近也给android编译了ijkPlayer播放器,然后全部都集成进去了!!那么问题来

2014-12-19 16:14:05 572

原创 linux 文件时间

linux  文件一般有三个时间  (通过stat或者lstat获取文件属性)可以得到文件的st_atime, st_mtime, st_ctime当使用 cat  read 等一系列读取文件操作的时候,文件的st_atime会跟随着一直改变;我的系统是ubuntu,当使用vi操作的时候,文件的访问时间st_atime没有跟随着变化当使用 write 等一系列写操作文件的时

2014-12-18 12:06:00 522

转载 利用strace 调试程序

strace -p pid  调试程序;可以看到进程执行的过程,显示的是系统调用的函数,同时可以看出系统调用的返回值

2014-12-18 10:40:14 671

转载 linux 列出最近修改的文件

查找当前目录下.phtml文件中,最近30分钟内修改过的文件。find . -name '*.phtml' -type f -mmin -30查找当前目录下.phtml文件中,最近30分钟内修改过的文件,的详细情况。find . -name '*.phtml' -type f -mmin

2014-12-18 10:37:48 1300

原创 brk和sbrk malloc关系讲解

brk和sbrk主要的工作是实现虚拟内存到内存的映射.在GNUC中,内存分配是这样的:       每个进程可访问的虚拟内存空间为3G,但在程序编译时,不可能也没必要为程序分配这么大的空间,只分配并不大的数据段空间,程序中动态分配的空间就是从这 一块分配的。如果这块空间不够,malloc函数族(realloc,calloc等)就调用sbrk函数将数据段的下界移动,sbrk函数在内核的管理

2014-09-12 16:10:59 1935

原创 gdb 显示全文

GDB下用p看一个字符串的时候默认显示是截断的,可以通过set print element 0命令显示完整的字符串。

2014-09-04 13:25:31 587

原创 andoird jni - 应用出现各种权限问题解决

android 生成app,会出现<uses-permission android:name="

2014-08-21 17:19:36 1649

原创 在调用静态库,一直提示undefined reference to 问题解决

1 : 那就是没有 加入某库才提示的,,可以指定路径

2014-08-14 15:13:13 12202 2

原创 linux jni头文件生成

进入到工程的src文件,把你要运行如下命令> javac com\android\libjni\LibJavaHeader.java> javah com.android.libjni.LibJavaHeader

2014-08-08 10:41:27 735

原创 google ip list

http://www.kookle.co.nr/

2014-06-11 17:52:29 806

原创 linux man手册

无意之中看到的一个网站,不错。。。http://linux.die.net/man/3/getaddrinfo

2014-05-29 12:23:58 716

原创 ---***---

# if __WORDSIZE == 32    #define _INT_64_ "lld"#else    #define _INT_64_ "ld"#endifprintf("%"_INT_64_"-%"_INT_64_"/%"_INT_64_"\n", a, b , c);

2014-05-27 10:17:38 6358

转载 linux 下cat都正常显示,vi却显示乱码 问题解决

今天在做一个东西的时候发现,LANG设置为en_US.UTF-8,putty上的编码设置为Use font encoding, putty上输出汉字正常,重定向到文件后vi乱码,cat,more这个文件汉字显示也正常,查了网上很多东西最后发现按一种说法改对了:应该是格式化的问题! 比如man手册的文件有一些格式标记,你用man   ,cat都可以正常现实,但是用vi看起来就有点混乱!因为vi把

2014-05-19 14:11:29 3632

原创 printf 缓冲机制的问题

printf()打印的时候,才int32_t a = 1234; int64_t b = 8976;printf( "b = %lld, a = %d \n", b, a );

2014-04-09 16:33:37 898

原创 linux 获取程序运行的运行路径

char * CMainServer::get_exe_path( char * buf, int count){    int i;    int rslt = readlink("/proc/self/exe", buf, count - 1);    if (rslt = count - 1))    {        return NULL;    }   

2014-02-27 16:18:13 737

原创 range断点续传

Client request:Server通过请求头中的Range: bytes=0-xxxserver response : Content-Range:  bytes  0-100/2350

2014-02-18 17:31:30 608

转载 wget gzip

Apache启用gzip/deflate或者Nginx启用gzip之后用wget测试的话需要加上--header="accept-encoding:gzip"用curl则加上--compressed浪费了20分钟在这选项上,milk关于gzip和deflate有两篇文章(1和2), 作者应该是一个人,明显是从1毛跳去了性浪..

2014-02-13 16:00:38 1279

原创 linux 简单的下载down

#include #include #include #include #include #include #include #include #include #include #include #include #include int main ( int argc, char *argv[] ){int sockfd;st

2014-02-13 11:07:13 743

转载 peer handShake

Peer wire protocol (TCP)概述peer(端)协议使片(piece)的交换变得容易,片的描述请参考元信息文件。注意:原来的规范在描述peer协议时,也使用术语piece“(片)”,但是这不同于元信息文件里面的术语“piece(片)”,由于这个原因,在本规范中,将使用术语“块(block)”来描述peers(端)之间交换的数据。一个客户端(client)必须维持其

2014-01-24 15:34:44 1116

转载 打洞,,

UDP,TCP打洞技术内容概述:在p2p通信领域中,由NAT(Network Address Translation,网络地址转换)引起的问题已经众所周知了,它会导致在NAT内部的p2p客户端在无论以何种有效的公网ip都无法访问的问题。虽然目前已经发展出多种穿越NAT的技术,但相关的技术文档却很少,用来证明这些技术的稳定性和优点的实际数据更少。本文的目的在于描述和分析在实际中运用得最广泛、

2014-01-24 11:16:06 775

转载 位域的操作

位域简介有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域, 并说明每个区域的位数。每个域有一个域名,可以在程序中按域名进行操作。 这样就可以把几个不

2014-01-24 09:42:59 814

转载 bt torrent文件

BT源代码学习心得(四):种子文件的生成在知道种子文件采取的编码方式后,我们现在可以来看一个种子文件具体是如何生成的了。在BT中,生成种子文件的可执行模块是btmaketorrent.py(命令行模式)或者btmaketorrentgui.py(图形界面模式),通过分析,可以知道它们最终都将调用函数make_meta_files进行种子文件的生成,区别仅仅在于提供给这个函数

2014-01-23 18:47:04 976

转载 bt peer通信协议报文格式

接下来协议的所有报文采用如下的结构:。length prefix(长度前缀)是一个4字节的大端(big-endian)值。message ID是单个十进制值。playload与消息相关。l  keep-alive: keep-alive消息是一个0字节的消息,将length prefix设置成0。没有message ID和payload。如果peers在一个固定时间段内没有收到任何报文(k

2014-01-22 16:44:52 1796

原创 case多条件

case '0'...'9':  printf( "test\n" );  break;

2014-01-20 16:43:38 642

原创 localtime 和 localtime_r

locatime 为不可重入函数。。locatime_r 为可重入函数;例如int main (){  p = time( NULL );pend  =  p+1800;locatime( p);locatime( pend );sfrtime( date1, "%H。。。。“ , p );sfrtime( date2, "%H。。。

2014-01-20 10:38:33 834

原创 结构体字节对齐

#pragma pack( push,1 )struct_ A{int a;char b;}A;#pragma pack(pop)

2014-01-17 10:16:43 673

原创 linux md5运用。。。

#include#include#includeint main( int argc, char **argv ){MD5_CTX ctx;unsigned char *data="123";unsigned char md[16];char buf[33]={'\0'};char tmp[3]={'\0'};int i;MD5_Init(&ct

2014-01-16 18:11:56 457

原创 Linux 操作int64_t

# if __WORDSIZE == 32#define _INT_64_ "lld"#else#define _INT_64_ "ld"#endif然后输出。。。。printf("%"_INT_64_"\n", a);同样可以运用到对各种字符串的操作,如sscanf,或者sprintf等等。。。

2014-01-15 17:36:13 1616

翻译 eclispe 跳转问题 找不到头文件

eclipse上配置好cdt后,新建一个简单的项目测试下,当写入头文件时,却出现如下错误提示:unresolved inclusion: 原因与解决:这是c/c++标准库未设置所致。解决方法如下。选中项目,依次操作:右键单击 -> properties -> C/C++ General -> Paths and Symbols -> Add...  ->

2014-01-15 12:21:59 1068

转载 共享内存

从表面上看,UNIX® 应用程序单独控制底层主机。它随时可以访问处理器,它的内存是神圣不可侵犯的,连接它的设备只为它服务。但是表面现象会骗人,这样有如君主一般的绝对地位只是幻想而已。UNIX 系统同时运行大量应用程序,有限的物理资源要在它们之间共享。处理器能力被划分为时间片,应用程序映像经常被换入和换出真实内存,设备访问由需求驱动,还受到访问权限的限制。尽管您的 shell 提示符不断闪烁,但是

2014-01-14 15:50:06 586

转载 共享内存操作,mmap映射

shm_id=shm_open(argv[1],O_RDWR|O_CREAT,0644);/*创建共享内存区*/ftruncate(shm_id,100);/*调整共享内存区大小*/sem=sem_open(argv[1],O_CREAD,0644,1);/*创建信号量*/ptr=mmap(NULL,100,PROT_READ|PROT_WRITE,MAP_SHARED,s

2014-01-14 15:07:08 622

原创 获取系统时间的各种格式。。

#if 0time_t timeNow;struct tm *p_tm;char *wday[]={(char *)"Sun",(char *)"Mon",(char *)"Tue",(char *)"Wed",(char *)"Thu",(char *)"Fri",(char *)"Sat"};char *month[] = { (char *)"Jan",(char *)"Fe

2014-01-13 15:54:38 655

转载 linux 时间转换

linux下的时间函数我们在编程中可能会经常用到时间,比如取得系统的时间(获取系统的年、月、日、时、分、秒,星期等),或者是隔一段时间去做某事,那么我们就用到一些时间函数。linux下存储时间常见的有两种存储方式,一个是从1970年到现在经过了多少秒,一个是用一个结构来分别存储年月日时分秒的。time_t 这种类型就是用来存储从1970年到现在经过了多少秒,要想更精确一点,可以用结构s

2014-01-12 12:32:07 709

原创 c 正则匹配简单运用

int status, i;int cflags = REG_EXTENDED;regmatch_t pmatch[10];const size_t nmatch = 10;regex_t reg; char buf[] = "this is to cmp to the ZhengZe\n";char requestUrl[ 1024 ] = "";char has

2014-01-09 11:47:47 754

空空如也

空空如也

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

TA关注的人

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