- 博客(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关注的人