- 博客(59)
- 资源 (1)
- 收藏
- 关注
原创 Dbus
##D-Bus三层架构DBus是一个为应用程序间通信的消息总线系统, 用于进程之间的通信。它是个3层架构的IPC 系统,包括:1、函数库libdbus ,用于两个应用程序互相联系和交互消息。2、一个基于libdbus构造的消息总线守护进程,可同时与多个应用程序相连,并能把来自一个应用程序的消息路由到0或者多个其他程序。3、基于特定应用程序框架的封装库或捆绑(wrapper librarie...
2019-02-01 16:36:54
2231
原创 字符串能否修改的两种情况
char *ip1=(char *)malloc(sizeof(char)*16); //不要用const char*//char *ip1="192.168.0.1"; //malloc 分配的内存相当于数组,数组的赋值显然不能这样sprintf(ip1,"%s", "192.168.0.1");strcpy(ip1,"abcdefg");//可以对其修改。相反:const char *i...
2018-10-12 11:40:02
1801
原创 NAT的几种类型
一、概念NAT(Network Address Translation,网络地址转换),当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。要真正了解NAT就必须先了解现在IP地址的适用情况,私有IP地址是指内部网络或主机的IP 地址,公有IP地址是指在因特网上全球唯一的IP地址。RFC ...
2018-09-27 15:40:17
22661
3
原创 Minicom使用介绍
minicom是一个串口通信工具,就像Windows下的超级终端。可用来与串口设备通信,如调试交换机和Modem等。一、Minicoms使用1.安装minicom打开终端 sudo apt-get install minicom即可完成安装。2.minicom配置参数命令运行sudo minicom -s进入了minicom的配置界面:使用上下键选择Serial port s...
2018-09-14 13:51:58
76070
原创 抓包分析呼叫转移
呼叫转移为了模拟呼叫转移的场景选择测试设备:PBX IP:192.168.125.254Transferor:GXP1760W 35094 IP:192.168.131.86Transferee:GXV3240 36843 IP:192.168.131.124Transfer Target:GXP1528 36011 IP:192.168.131.691.呼叫前转移场景: ...
2018-09-07 11:06:41
1634
1
原创 FXO与FXS区别
在VOIP网络中,语音网关(VoIP Gateway)是PSTN电话向VOIP电话过渡的产物,因此语音网关在VOIP网络环境中扮演一个重要的角色。那么提到语音网关我们就不得不提到FXO和FXS两个关键字,这两个概念比较难理解,下面我们来通过了解语音网关的工作原理,组成结构以及应该用环境来了解FXO和FXS的区别。 就 PSTN 上的传统电话连接而言,电话局端交换提供电源与电话振铃。电话本身...
2018-09-07 11:05:11
17983
原创 如何利用C++list容器对结构体进行排序
list容器已经给出排序函数sort。只需要重载比较函数就可以。typedef struct inforNode { unsigned char name[20]; unsigned char number[10]; unsigned char age[3]; unsigned char country[20]; struct Node* pNe...
2018-09-04 10:05:39
1056
原创 创建一个简单的XML文件
操作系统是Ubuntu16,编辑器是VScore,编译器是gcc。下面附上完整的代码: #include <stdio.h>#include <libxml/parser.h>#include <libxml/tree.h>int main(){//定义文档和节点指针xmlDocPtr doc = xmlNewDoc(BA...
2018-09-04 09:56:37
3178
转载 设计模式之2-策略模式
每个人都要“交个人所得税”,但是“在美国交个人所得税”和“在中国交个人所得税”就有不同的算税方法。 而策略模式就是对算法进行包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来说,就是:“准备一组算法,并将每一个算法封装起来,使得它们可以互换”。类图与实例:Conte
2018-02-07 10:49:34
171
转载 设计模式之1-工厂模式
软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。本文介绍工厂模式的实现。 工厂模式属于创
2018-02-07 10:29:50
185
原创 read,send,write,recv的区别
______________________________________________| MSG_DONTROUTE | 不查找路由表 || MSG_OOB | 接受或发送带外数据 || MSG_PEEK | 查看数据,并不从系统缓冲区移走数据 || MSG_WAITALL | 等待任何数据 ||————————————————————–|
2017-02-10 09:10:46
498
原创 可调闹钟lcd时钟
#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#include<intrins.h>#include "i2c.h"//sbit LATCH1=P2^2; //定义锁存使能端口 段锁存//sbit LATCH2=P2^3; //位锁存sbit RS = P2^4; //定义端口 sbit RW = P2^5;
2017-02-08 19:30:37
633
转载 查找中间节点
//查找链表的中间结点;//自定义的结点结构体和头指针结构体:[cpp] view plain copy #include #include #include #include typedef int DataType; typedef struct L
2017-01-08 20:35:39
556
转载 termios.h
ermios 结构是在POSIX规范中定义的标准接口,它类似于系统V中的termio接口,通过设置termios类型的数据结构中的值和使用一小组函数调用,你就可以对终端接口进行控制。可以被调整来影响终端的值按照不同的模式被分为如下几组:1.输入模式2.输出模式3.控制模式4.本地模式5.特殊控制模式最小的termios结构的典型定义如
2017-01-06 22:21:00
17968
转载 编写一个函数实现对单链表是否有环的判断
一、单链表环的定义:有环的定义是,链表的尾节点指向了链接中间的某个节点。比如下图,如果单链表有环,则在遍历时,在通过结点J之后,会重新回到结点D。题目:0.如何判断单链表里面是否有环?算法的思想是设定两个指针p, q,其中p每次向前移动一步,q每次向前移动两步。那么如果单链表存在环,则p和q相遇;否则q将首先遇到null。这里主要理解一个问题,就
2017-01-03 23:28:19
2506
1
转载 strcpy,sprintf,memcpy的区别
这些函数的区别在于 实现功能 以及 操作对象 不同。strcpy 函数操作的对象是 字符串 ,完成 从 源字符串 到 目的字符串 的 拷贝 功能。snprintf 函数操作的对象 不限于字符串 :虽然目的对象是字符串,但是源对象可以是字符串、也可以是任意基本类型的数据。这个函数主要用来实现 (字符串或基本数据类型)向 字符串 的转换 功能。如果源对象是字符串,并且指定 %s 格式符,也可实
2016-12-25 13:27:32
395
原创 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。
main() { int i,j,k; printf("\n"); for(i=1;i<5;i++) /*以下为三重循环*/ for(j=1;j<5;j++) for (k=1;k<5;k++) { if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/ printf("%d,%d,%d\n",i,j,k);
2016-12-18 22:40:07
1488
转载 堆和栈的区别
1.申请方式(1)栈(satck):由系统自动分配。例如,声明在函数中一个局部变量int b;系统自动在栈中为b开辟空间。(2)堆(heap):需程序员自己申请(调用malloc,realloc,calloc),并指明大小,并由程序员进行释放。容易产生memory leak.eg:char p; p = (char *)malloc(sizeof(cha
2016-12-14 21:58:21
273
转载 费诺编码
#include<stdio.h>#include<string.h>#include<stdlib.h>#include<math.h>static char p[11][10];static int flag1=0;static int ncount1;//...............main........................void main(){ voi
2016-12-13 21:48:41
1933
1
转载 哈弗曼编码C语言
#include<stdio.h>#define n 5 //叶子数目#define m (2*n-1) //结点总数#define maxval 10000.0#define maxsize 100 //哈夫曼编码的最大位数typedef struct{ char ch; float weight; int lchild,rchild,parent;}hufmtre
2016-12-12 22:26:48
593
原创 奇数魔方阵
#includeint main(){int n=0,i,j,k=1,p,q,a[20][20]={0}; while(!(n%2)) {printf("请输入一个小于20的奇数:"); scanf("%d",&n); } i=0; j=n/2; for(p=0;p {for(q=0;q{if(q>0)
2016-12-10 20:41:31
327
原创 服务器线程实现
#include <stdlib.h>#include <stdio.h>#include <errno.h>#include <string.h>#include <netdb.h>#include <sys/types.h>#include <netinet/in.h>#include <sys/socket.h>#define portnumber 3333void * read
2016-12-05 21:35:37
356
转载 子线程循环 3 次,接着主线程循环 6 次,接着又回到子线程循环 3 次,接着再回到主线程又循环6 次,如此循环50次,试写出代码。
/*****************************************************copyright (C), 2014-2015, Lighting Studio. Co., Ltd. File name:Author:Jerey_Jobs Version:0.1 Date: Description:Funcion List: ******
2016-12-04 22:25:39
264
原创 编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。
#include <stdio.h>#include <pthread.h>#include <unistd.h>#include <errno.h>int ticket = 30;void *thread1(void){ while(1) { if(ticket > 0) { //sleep(1); printf(
2016-12-03 21:27:17
1505
原创 消息队列
#include <sys/types.h>#include <sys/msg.h>#include <unistd.h>#include <stdio.h>#include <stdlib.h>#include <sys/ipc.h>#include <string.h>#include <signal.h>struct msg_buf { int mtype
2016-11-29 22:49:33
195
原创 消息队列读操作
#include <stdio.h>#include <sys/msg.h>#include <sys/types.h>#include <sys/ipc.h>#include <stdlib.h>#define BUFSZ 4096struct msg{ long msg_types; char msg_buf[512];};int main(int argc,char
2016-11-27 23:08:07
328
原创 共享内存的读写
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <sys/ipc.h>#include <sys/shm.h>#define BUFFER_SIZE 2048int main(){ pid_t pid; int shmid; char *s
2016-11-26 20:21:53
1315
原创 有名管道的写操作
#include #include #include #include #include #include #include #define FIFO_SEVER "/tmp/fifosever"int main(int argc,char *argv[]){ int fd; char w_buf[4096*2];
2016-11-23 17:39:41
267
原创 fifo有名管道的读操作
#include #include #include #include #include #include #include #define FIFO_SEVER "/tmp/fifosever"int main(int argc,char **argv){ char r_buf[4096*2]; int fd; i
2016-11-21 21:03:20
307
原创 数据库遍历
int inquire_nocb(sqlite3 *db){int nrow,ncolumn;char **azresult;char *sql;char *errmsg = NULL;int i;sql = "select * from txl;";if(sqlite3_get_table(db,sql,&azresult,&nrow,&ncolu
2016-11-18 21:57:50
822
原创 关于feof函数多读一次的问题
在完成通信录的过程中总是多读出一个0,对此我进行了多次调试。下面是成功的代码void load_txl(Link *head){Link temp = *head;Link newnode = NULL;FILE *fp;int i;if((fp = fopen("txl.txt","r")) == NULL){printf("打开失败!\n");
2016-11-16 19:39:11
1935
原创 数据库显示
int inquire_nocb(sqlite3 *db){int nrow,ncolumn;char **azresult;char *sql;char *errmsg = NULL;int i;sql = "select * from mytable;";if(sqlite3_get_table(db,sql,&azresult,&nrow,&n
2016-11-14 22:35:10
291
原创 threehello
#include #include #include #include #include #include #include #include #define MAX 100int read_line(int fd,char *buf,int count){int i;char ch;for(i = 0;i {if((re
2016-11-12 22:08:48
213
原创 程序功能:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中。
#include #include struct node{int num;struct node * next;};typedef struct node Node;typedef struct node * Link;void creat_link(Link * head){*head = NULL;}//ma
2016-11-06 20:31:22
3973
原创 题目: 一个数如果恰好等于它的因子之和,这个数被成为”完数”,例如:6=1+2+3.请编程找出1000以内的完数
#include int main(){int i,j;int sum;for(i = 6;i {//赋值为因子和sum=i;for(j = 1;j {//总数减去因子if(i % j == 0){sum=sum-j;}} //减去所有的因子 if(sum == 0)
2016-10-30 20:04:52
1655
原创 .题目:请编写一个c函数,该函数给出一个字节中被置为1的位的个数
#include int fun(int num){static int count=0; //每一位与1判断if(num % 2 & 1 == 1){count++;} //除二判断下一位if(num >> 1 >= 2)fun(num >> 1); //判断最后一位if(num >> 1 == 1
2016-10-29 21:51:07
1181
原创 题目:有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位. 提示:用数组完成
#include #define N 5 //指定一群中的人数int main(){int i,k;int a[N+1],*p; //循环赋值for(i = 0,p = a;p {*p=i;}p = a + 1;for(i = 0,k = N;k > 1;p++){//指向末尾后从头指if(p >
2016-10-29 21:49:22
1143
原创 题目:输入5个数(含负数、小数)将它们按由小到大的顺序排列起来 提示:需要排数的数字通过参数传递进来, 例如:输入:./a.out -1 2.1 -3 5 7 输出: -3 -1 2.1
#include #include #define MAX 999 //足够大的数使其正数参加排序int main(int argc,char *argv[]){int i,j;float a[100],temp = 0.0;for(i = 0;i {printf("%s ",argv[i]);a[i]= atof(argv[i])+
2016-10-29 21:47:07
978
原创 从一个字符数组中读出相应的整数、实数
#includeint main(){ char sp[] = "qw1234u23.45p98"; char *p = sp; float a[80]; int num = 0,cn = 1,i; float value = 0.0; while(*p != '\0'){ // 指向数字的
2016-10-29 21:45:17
715
TR069协议说明文档
2018-09-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人