自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C语言——产生一个随机字符或者随机数

#include#include#include#include void genRandomString(char* buff, int length){    char metachar[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";    int i = 0;

2017-10-25 16:44:33 7585

原创 C语言将十六进制字符串转换成对应的十进制数字

#include#include#include/* 将大写字母转化成小写字母 */int tolower(int c){    if (c >= 'A' && c     {        return c + 'a' - 'A';    }    else    {        return c;    }}/* 将

2017-09-28 10:27:50 10721 2

原创 获取某个目录下所有文件夹名和文件名

#include#include#include #includeint main(void){        DIR *dirptr=NULL;        int i=1;        struct dirent *entry;        if((dirptr = opendir("/home/ifen"))==NULL)        { 

2017-08-22 11:39:19 706

原创 删除字符串里多余的空格,只保留一个空格

#include#include#include void main(){    char line[128]="tcp        0      0 127.0.0.1:12321         0.0.0.0:*               LISTEN      8232/smart_agent";    char r[128] = {0};    int

2017-07-24 16:44:36 2670

原创 C指针操作——全部替换字符串里某个字符或者某个子串

#include#include#include//把source字符串里所有s1字符全部替换成字符s2void replace_char(char *result, char *source, char s1, char s2){    int i = 0;    char *q = NULL;    q = source;    for(i=0; i

2016-10-28 17:03:49 16640

转载 C语言单向链表的建立

参考:http://www.itxyz.net/3jk/c/2010/0820/11016.html最近不是太忙,整理些东西,工作也许用得到。1,为什么要用到链表数组作为存放同类数据的集合,给我们在程序设计时带来很多的方便,增加了灵活性。但数组也同样存在一些弊病。如数组的大小在定义时要事先规定,不能在程序中进行调整,这样一来,在程序设计中针对不同问题有时需要3 0个大小的数

2016-07-22 11:16:50 593

原创 C指针操作——把ip字符串转换成ip range字符串

把“192.168.1.6”字符串转化成加4后的ip地址  1 #include  2 #include  3 #include  4 void main()  5 {  6     char ip[65] = "192.168.1.6";  7     char ip_range[64] = {0};  8     char *q = NULL;  9

2016-05-26 16:41:11 842

转载 rpc简介、原理、实例-缘于difx

简介RPC(Remote Procedure Call,远程过程调用)是建立在Socket之上的,出于一种类比的愿望,在一台机器上运行的主程序,可以调用另一台机器上准备好的子程序,就像LPC(本地过程调用).越底层,代码越复杂、灵活性越高、效率越高;越上层,抽象封装的越好、代码越简单、效率越差。Socket和RPC的区别再次说明了这点。在传统的编程概念中,过程是由程序员在本地编译完成,并只

2016-05-25 17:50:14 373

原创 C指针操作——获取有分隔符字符串里的指定字符

获取"11,22,33;44,55,66;77,88,99"字符串中被“,”号隔开的每一个字符串#include#includevoid main(){    char quick_dial_code[64]={0};    char vanity[32]={0};    char path[64]="11,22,33;44,55,66;77,88,99";   

2016-05-05 10:06:51 2595

原创 C指针操作——获取字符串中所有数字

1 #include  2 #include  3 void main()  4 {  5 char *b = NULL;  6 char a[20] = "**2569#123S";  7 char m[20] = {0};  8 int i=0;  9 b=a; 10 while(*b!='\0') 11 { 12  if(*b='0') 13

2014-11-18 15:09:55 4485

转载 sip中的subscribe和notify扩展应用技术

摘要:会话启动协议研究工作组提出3种协议功能扩展方式:方法扩展、头部扩展和消息体扩展。文章深入探讨了包含这3种扩展方法的事件通告机制,给出了基于这一机制的自动回叫业务实例,并讨论了该机制的安全性。关键词:会话启动协议;事件通告机制;IP通信网协议;增值业务 Abstract:IETFSIPPING (Session Initiation Protocol Investigati

2014-08-27 13:12:49 1080

原创 C指针操作——获取字符串中某个特定的字符

要获取字符串  1 #include  2 #include  3 void main()  4 {  5  char a[35]="adc,expires=600,dfdf";  6 char *q=NULL;  7  char time[35]={0};  8  q=strstr(a,"expires=");  9  if(q!=NULL) 10 

2014-08-20 08:59:18 2310

转载 C语言字符串操作--删除子串

#include#includevoid main(){ char a[15]="Hi Hillo Hi"; char *p=a; char *q; char *temp="Hi"; int i; i=strlen(temp);  while((q=strstr(p,"Hi"))!=NULL) {  strcpy(q,q+i); } pu

2014-08-14 17:56:42 3626 1

转载 比较全面的gdb调试命令

用GDB调试程序 GDB是一个强大的命令行调试工具。大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本。UNIX下的软件全是命令行的,这给程序开发提代供了极大的便利,命令行软件的优势在于,它们可以非常容易的集成在一起,使用几个简单的已有工具的命令,就可以做出一个非常强大的功能。 于是UNIX下的软件比Windows下的软件更能有机地结合,各自发挥各自的长处,组合成更

2014-07-31 17:45:24 500

转载 RFC3581——SIP中的rport机制

1.   介绍RFC3581的下载地址:http://www.ietf.org/rfc/rfc3581.txt该协议比较简短,主要用于描述rport(response-port)机制。1.1 NAT分类NAT:网络地址转换(NAT,Network Address Translation)属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术,它被广泛应

2014-07-02 16:00:02 763

转载 SIP穿越NAT的rport机制

调试asterisk时发现从公网发来的INVITE的响应都不能正常返回到客户端,抓包发现响应都发到via头域中写明的那个port上去了,而实际asterisk是从NAT转换后的地址和端口接收的INVITE请求。最终发现需要在via中加入rport字段,使得asterisk使用rport机制路由响应。具体的RFC文档参见RFC3581。RPORT机制:客户

2014-07-02 15:59:45 893

转载 Linux 的启动流程

半年前,我写了《计算机是如何启动的?》,探讨BIOS和主引导记录的作用。那篇文章不涉及操作系统,只与主板的板载程序有关。今天,我想接着往下写,探讨操作系统接管硬件以后发生的事情,也就是操作系统的启动流程。这个部分比较有意思。因为在BIOS阶段,计算机的行为基本上被写死了,程序员可以做的事情并不多;但是,一旦进入操作系统,程序员几乎可以定制所有方面。所以,这个部分与程序员的关系更密切。

2014-06-11 10:29:01 483

转载 互联网协议入门(二)

(接上文)七、一个小结先对前面的内容,做一个小结。我们已经知道,网络通信就是交换数据包。电脑A向电脑B发送一个数据包,后者收到了,回复一个数据包,从而实现两台电脑之间的通信。数据包的结构,基本上是下面这样:发送这个包,需要知道两个地址:  * 对方的MAC地址  * 对方的IP地址有了这两个地址,数据包才能准确送到接收者手中。

2014-06-11 10:09:01 651

转载 互联网协议入门(一)

我们每天使用互联网,你是否想过,它是如何实现的?全世界几十亿台电脑,连接在一起,两两通信。上海的某一块网卡送出信号,洛杉矶的另一块网卡居然就收到了,两者实际上根本不知道对方的物理位置,你不觉得这是很神奇的事情吗?互联网的核心是一系列协议,总称为"互联网协议"(Internet Protocol Suite)。它们对电脑如何连接和组网,做出了详尽的规定。理解了这些协议,就理解了互联网

2014-06-11 10:07:35 568

转载 【网络协议】IP协议、ARP协议、RARP协议

IP数据报    IP是TCP/IP协议族中最核心的协议,所有的TCP、UDP、ICMP、IGMP数据都以IP数据报的格式传输。IP仅提供尽力而为的传输服务,如果发生某种错误,IP会丢失该数据,然后发送ICMP消息给信源端。另外,IP数据报可以不按发送顺序接受。    IP数据报的格式如下:    前20字节和紧接其后的选项部分是IP数据报的首部,前20个字节是固定的,选项可有

2014-06-11 09:40:08 561

转载 BCM VOIP 应用程序编译分析

VOIP应用程序源码分布:[plain] view plaincopyprint?Vodsl(VOIP应用程序) -- userspace/private/apps/vodsl    |_bos(系统适配层)-- xChange/dslx_common/xchg_common    |_endpoint(驱动适配层)-- userspace/private/apps/v

2014-06-03 17:15:26 1173

转载 内核SIP ALG学习指引和基本实现原理(分析BCM方案实现)

总结一下内核ALG的学习方法和基本原理,方便以后需要了解这方面的朋友少走弯路。该文档分析基于broadcom5358方案。 一、如何查看板子是否使用内核ALG1、建立一条含有INTERNET服务,并且开启了NAT选项的WAN连接(注意:如果是pppoe、dhcp,请确保连接成功,这一步一定要记得看一下,否则代码流程不会插入SIP ALG相关内核模块)。2、开启SIP ALG功能

2014-06-03 17:01:09 1635

转载 内存分配及堆与栈的区别

1.内存分配方式内存分配方式有三种:       1.从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。       2.从堆栈上分配。函数内的局部变量的存储单元,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。       3.从堆上分配,亦称动态

2014-05-20 14:29:55 525

转载 C语言中常见的内存错误与解决方法

常见的错误      关于内存的一些知识已在内存分配中提及,现记录与分享常见的内存错误与对策。类型 1:内存未分配成功,却使用了它。方   法:在使用之前检查指针是否为NULL。             1)当指针p是函数的参数时,在函数入口处用语句assert(p!=NULL)进行断言检查。             2)当使用malloc或new来申请内存时,应该用if(p

2014-05-20 14:21:31 1566

转载 Makefile易懂教程

跟我一起写 Makefile陈皓 (CSDN)概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在U

2014-05-20 10:01:43 510

转载 gdb常用命令

调用gdb编译需要在cc后面加 -g参数再加-o;[root@redhat home]#gdb 调试文件:启动gdb(gdb) l :(字母l)从第一行开始列出源码(gdb) break n :在第n行处设置断点(gdb) break func:在函数func()的入口处设置断点(gdb) info break: 查看断点信息(gdb) r:运行程序

2014-05-20 09:58:03 639

转载 [Android面试题-5] HTTP,TCP/IP相关

题目1:请说出Http位于TCP/IP模型中的第几层?为什么说Http是可靠的数据传输协议?分析:首先我们来看一下TCP/IP模型的五层模型。题目中所说的Http协议就是处于模型中的应用层。由于Http是在传输层基于TCP协议的,而TCP又是面向连接的可靠协议,所以Http是可靠的传输协议。题目2:请简单的说一下GET和POST的区别。分析:Get和Post都是

2014-05-20 09:54:12 672

转载 Vim命令合集

命令历史以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令。启动vim在命令行窗口中输入以下命令即可vim 直接启动vimvim filename 打开vim并创建名为filename的文件文件命令打开单个文件vim file同时打开多个文件vim file1 file2 file3 ...在vim窗口中打开一个新文件

2014-05-20 09:47:32 369

空空如也

空空如也

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

TA关注的人

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