- 博客(430)
- 资源 (20)
- 收藏
- 关注
原创 GTK编程基础---入门篇(helloworld)
下面来介绍GTK编程入门,你的第一个程序hellowoeld。直接通过程序来讲解吧。/*File:helloworld.c *Date:2013-11-23 *Author:sjin *Mail:[email protected] *//*my first test program*/#include /* 这是一个回调函数。data 参数在本示例中被忽略。 * 后面有更多的回
2013-11-23 16:17:24 17249 1
转载 Ubuntu下安装GTK的三种方法
1 安装命令:sudo apt-get install gnome-core-devel sudo apt-get install libglib2.0-doc libgtk2.0-doc sudo apt-get install devhelp sudo apt-get install glade-gnome glade-common glade-doc 安装GTK环境只要
2013-11-17 15:34:13 18100 3
原创 走进C++程序世界----宏定义和内联函数及模板说明
1. 简单宏定义 简单的宏定义有如下格式: [#define指令(简单的宏)] #define 标识符替换列表 替换列表是一系列的C语言记号,包括标识符、关键字、数、字符常量、字符串字面量、运算符和标点符号。当预处理器遇到一个宏定义时,会做一个 “标识符”代表“替换列表”的记录。在文件后面的内容中,不管标识符在任何位置出现,预处理器都会
2013-11-17 10:53:35 2612
原创 走进C++程序世界----类型转换运算符
C++的四个类型转换运算符已经有很久了,但一直没有弄清楚它们的用法,今天看到一本书上的解释,才大致地的了解了其具体的用法.看下面具体的代码:/* *cast_operator.cpp *cDate : 2013-11-16 *Author: sjin *Mail:[email protected] */#include using namespace std;/*C++中的
2013-11-16 17:28:18 2117
原创 ubuntu 一些常用的查找方法
1、查找头文件在那个源码包中。 比如查找X11/Xlib.h在那个源码包中,打开网页http://packages.ubuntu.com 中的Keyword中输入X11/Xlib.h之后,浏览器会显示下面的列表文件软件包/usr/include/IV-X11/Xlib.hivtools-dev/usr/include/X11/X
2013-11-14 08:59:04 1890
原创 走进C++程序世界------操作符运算、操作符重载、转换运算符、双目元算、+=,-+运算符,比较运算符及下标运算符
重载,在一个类定义中,可以编写几个同名的方法,但是只要它们的签名参数列表不同,Java就会将它们看做唯一的方法。简单的说,一个类中的方法与另一个方法同名,但是参数表不同,这种方法称之为重载方法下面关于操作符重载的具体实例(单目运算的自增及自减)/* *operator.cpp *cDate : 2013-9-28 *Author: sjin *Mail:413977243@qq
2013-10-28 22:37:04 2296
原创 走进C++程序世界------多重继承
多重继承 多重继承:从多个基类派生出来的新类。要从多个基类派生,在类声明中,基类之间用逗号隔开。如下:class Pegasus : public Horse,public Bird {}可以看下面的代码,说明了如何声明Pegasus,使其从Horse和Birds派生而来。/* *Multiple_interitance.cpp *Date : 2013-
2013-10-27 12:15:30 1985
转载 alsa 用户空间编程
/**alsa play test*ALSA用户空间编译,ALSA驱动的声卡在用户空间,不宜直接使用*文件接口中,而应使用alsa-lib*打开---->设置参数--->读写音频数据 ALSA全部使用alsa-lib中的API*交叉编译*export LD_LIBRARY_PATH=$PWD:$LD_LIBRARY_PATH*arm-linux-gcc -o alsa_play als
2013-10-19 17:07:07 2211
转载 ALSA编程细节分析---Linux 声音调节
[Loong]:之前写过基于ALSA的WAV播放录音程序,见http://blog.csdn.net/sepnic/archive/2011/01/14/6140824.aspx。现在本想好好整理一下ALSA的编程思想,但Google了一下,发现已经有同道做了类似的工作,故将其转载过来,并添加一些本人的疑问以及补充(将会继续补充,原文很多重要的ALSA参数没有提到)。原文:http://b
2013-10-19 17:05:30 7368
翻译 freeRdp ---- 音频输出通道扩展
1.1.1 EA简介The Remote Desktop Protocol: Audio OutputVirtual Channel Extension [MS-RDPEA]:远程桌面协议:音频输出虚拟通道扩展。远程桌面协议无缝地传输音频数据从服务器到客户端。这个协议的目的是将音频数据从服务器传输到客户端。例如,当服务器播放音频文件时,这个协议将音频数据传输到客户端,客户端再播放音频文件
2013-10-19 17:01:02 4784
翻译 freeRdp -----GDI加速扩展相关介绍
1.1.1 GDI简介Remote Desktop Protocol: Graphics Device Interface (GDI)Acceleration ExtensionsGDI加速扩展:Gdi加速扩展是为了减少带宽,通过编码动态的绘制操作来生成一个图像代替原始图像的编解码。1.1.2 GDI相关内容1、 CachesGDI定义了一些数量的缓存提供给客户端
2013-10-19 16:53:06 5182
原创 走进C++程序世界-----私有继承
私有继承: 在C++编程语言中,在声明一个派生类时将基类的继承方式指定为private的称为私有继承,用私有继承方式建立的派生类称为私有派生类(private derived class),其基类称为私有基类(private base class)。私有基类的公用成员和保护成员在私有派生类中的访问属性相当于派生类中的私有成员,即派生类的成员函数能访问它们,而在派生类外不能访
2013-10-19 12:24:36 2199
原创 走进C++程序世界-----继承和派生(2)
覆盖基类的函数 覆盖基类函数顾名思义就是在派生类中对基类的函数进行的重新定义。这里将会讲到下面的2个知识点:1、隐藏基类的方法2、调用基类的方法(隐式和显示调用基类的方法) /* *derive2.cpp *Date : 2013-9-24 *Author: sjin *Mail:[email protected] */#include #define N 0
2013-10-12 23:05:31 2084
原创 走进C++程序世界------继承和派生
继承和派生 继承是面向对象编程语言的最重要方面之一,正确的使用继承可编写出设计良好,容易于维护和扩展的应用程序。下面是在其他博客中的总结:******************************以下转载 http://blog.csdn.net/caijp1090/article/details/7484906******************1、继承:保持已有类的特性而
2013-09-24 23:05:57 2300
原创 走进C++程序世界-------类的定义和使用(数据成员和方法成员,析构函数,构造函数,内联实现)
类的成员简介 在C++中,可以通过声明一个类来穿件一种新的类型。类将一组变量(他们的类型通常不同)和一组相关的函数组合在一起。类可以有各种类型的变量组成,还可以包含其他类对象。成员变量称为数据成员它们是类中变量。 成员变量也叫数据成员,他们是类中的变量。成员变量是类的组成部分 。类还可以包含函数,它们被称为成员函数或者方法。成员函数和成员变量一样,是类的重要组成部分,它们决定了类的功能
2013-09-20 22:23:59 3892
原创 走进C++程序世界-------浅谈引用
什么引用: 引用是别名,创建引用时,将其初始化另外一个对象,引用(reference)是C++对C语言的重要扩充。引用的声明的方法:类型标示符 & 引用名 = 目标变量名;说明: 1、&在此不是求地址运算,而是其标识作用。 2、类型标示符是指目标变量的类型。 3、声明引用时必须对此进行初始化。 4、引用声明完毕后,相当于目标变量名优两个名称,即该
2013-09-19 09:43:19 2392 1
原创 GDB调试(正在运行的程序)
有时会遇到一种很特殊的调试需求,对当前正在运行的其它进程进行调试(正是我今天遇到的情形)。这种情况有可能发生在那些无法直接在调试器中运行的进程身上,例如有的进程 只能在系统启动时运行。另外如果需要对进程产生的子进程进行调试的话,也只能采用这种方式。GDB可以对正在执行的程序进行调度,它允许开发人员中断程序 并查看其状态,之后还能让这个程序正常地继续执行。一、多线程调试多线程调试可能
2013-09-17 17:07:50 11701
原创 获得Unix/Linux系统中的IP、MAC地址等信息
获得Unix/Linux系统中的IP、MAC地址等信息实际环境和特殊需求往往会将简单问题复杂化,比如计算机IP地址,对于一个连接中socket,可以直接获得本端和对端的IP、端口信息。但在一些特殊场合我们可能需要更多的信息,比如系统中有几块网卡,他们的Mac地址是多少,每块网卡分配了几个IP(一个网卡对应多个IP)等等。这些信息往往需要通过ifconfig指令来获得,对于程序员来说,在
2013-09-16 14:18:14 3608
原创 PHP自学之路-----javascript基础入门
Javascript概述:Javascript是基于对象和事件的脚本语言。特点;1、安全性(不允许直接访问本地硬盘),它可以做的就是信息的动态交互。2、跨平台性。 JavaScript与HTML的结合方式:想要将其他代码融入HTML,都是以标签的形式。 1、 Js代码存放在标签对。。。。2、 使用JavaScript标签引入Js文件。如: JavaScript语
2013-09-15 21:40:00 2301 1
原创 走进C++程序世界-----指针(动态申请空间和释放空间)
使用关键字NEW分配内存 在讲解分配内存之前,首先来理解下内存区划分、内存分配、常量存储区、堆、栈、自由存储区、全局区这些也是初学者容易混淆的地方。我的博客中有一篇文章描述C语言中代码分配情况,点击链接 下面部分是转载于:http://blog.sina.com.cn/s/blog_7edcf63b0100yhk9.html 一. 在c中分为这几个存储
2013-09-14 11:44:18 10817 1
原创 走进C++程序世界-----函数相关(全局变量,默认参数,函数重载,内联函数)
全局变量在函数外面定义的变量的作用域为全局,在程序的任何函数中都可用。与全局变量同名的局部变量不会修改全局变量的值,但会隐藏它。如果函数中有一个与全局变量同 名的局部变量时,则在函数中使用该名称时,指得是局部变量而不是全局变量。这个也是面试中经常问到的?局部变量能否和全局变量重名?具体看下面的代码#include int x = 5;int y = 7;void myfunc
2013-09-12 22:15:17 2526 1
原创 走入C++程序世界-------第一个C++程序
下面就让我们走进C++的编程世界,目前介绍的都是在LINUX下的C++程序。废话少说,看下面经典的“hello world!"代码。#include /*io库*/#define N 1/*有些编译器允许main()的返回类型VOID,但是这种写法已不再是合法的C++程序 *请不要养成这种习惯。应该让main()返回int,像下面返回0就可以了。 * */int main(){
2013-09-11 22:32:58 2218
原创 网上支付平台PHP版本
今天看完了,传智博客PHP网上支付平台视频,对网络支付有个很深的了解,并没有想象的那么难,主要是使用第三方支付平台易宝进行。但是在测试中发现很多问题,一直没有解决,特意从网上找到完整详细的代码。有兴趣的同学可以自己下载看看!完整代码下载页http://download.csdn.net/detail/jsh13417/6230621 参考资料:传智博客PHP网上支付视频,
2013-09-07 22:51:16 3245
转载 asterisk常用调试监测命令
asterisk是开源的VOIP系统。是目前最流行的VOIP开源软件。在使用过程中 可以使用下述的命令,对系统进行监控调试。下文来自网络,非本人原创1. 运行调试常用命令./asterisk & 在后台启动asterisk./asterisk –vvvc 启动asterisk并尽量多的在控制台显示调试信息./asterisk –r 连接asterisk控制台
2013-09-04 22:55:51 7610
原创 Sip协议基本流程
1、SIP基本的呼叫流程详图 2、 Emmet:HTML/CSS代码快速编写神器3、asterisk 入门资料(安装、配置等等) ASTERISK呼叫基本概念视频4 、MAN 技术 手册 LINUX5、RFC技术资料英文版 6、C语言一些学习基础资料
2013-09-04 09:26:25 6544
原创 线程的取消模式
posix的线程有两中取消模式,立即取消和延迟取消.立即取消是你调用pthread_cancel的时候,不管线程当前正在干什么,马上被结束掉.延迟取消是在你调用pthread_cancel以后,线程运行到一个取消点函数的时候才会结束.使用pthread_join函数挂起当前线程后,想取消挂起,因此试着用了 pthread_detach函数,必须把pthread_detach放在pthr
2013-09-03 15:20:29 2234
原创 pthread_once()使用(某个时间在整个程序中仅执行一次,不确定是那个线程)
在多线程环境中,有些事仅需要执行一次。通常当初始化应用程序时,可以比较容易地将其放在main函数中。但当你写一个库时,就不能在main里面初始化了,你可以用静态初始化,但使用一次初始化(pthread_once)会比较容易些。int pthread_once(pthread_once_t *once_control, void (*init_routine) (void));功能:本函
2013-09-02 17:11:47 18777
原创 PHP 自学之路-----XML编程(Xpath技术,simpleXml技术)基础入门
XPAth技术 XPath的设计的核心思想,可以通过xpath迅速简介的定位到你希望查找的节点。主要目的是描述节点相对其他节点的位置,可以取得所有符合条件的节点,成为[位置路径]。 Xapth主要用来在XML文档中查询信息的工具,通过使用路径表达式可以解析XML文件,读取XML文件中的数据下面以案例来介绍,XML 文件如下(simplexml.xml):
2013-08-31 14:33:29 2839
转载 向socket一次写多少数据合适?
以太网(IEEE 802.3)帧格式:1、前导码:7字节0x55,一串1、0间隔,用于信号同步2、帧起始定界符:1字节0xD5(10101011),表示一帧开始3、DA(目的MAC):6字节4、SA(源MAC):6字节5、类型/长度:2字节,0~1500保留为长度域值,1536~65535保留为类型域值(0x0600~0xFFFF)6、数据:46
2013-08-26 10:45:30 6279
转载 linux TCP 参数设置
此文为网络转载,对理解linux内核tcp参数设置有一定帮助,设置tcp参数一定要小心谨慎,轻易不要更改线上环境,我贴一下我们线上环境中,sysctl.conf的内容,见文章底部net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_tw_recycle = 1net.ipv4.tcp_fin_timeout = 30net.ipv4.tcp_keepa
2013-08-26 10:39:45 5505
原创 PHP 自学之路-----XML编程(Dom技术)
上一节,讲了Xml文件基本语法及元素,实体及Dtd约束技术,下面就正式进入PHP的Xml编程使用PHP技术对Xml文件进行操作常用的有以下三种技术:1、PHP dom2、PHP结合XPath操作Xml3、Simplexml技术首先来说明DomDom(Document object model)文档-对象-模型,核心思想是把一个Xml文件,看成一个对象模型,然后通过对象的
2013-08-25 00:26:12 3034
转载 视频码率,帧率和分辨率及H264介绍
视频码率,帧率和分辨率到底哪一个影响电影的清晰度码率:影响体积,与体积成正比:码率越大,体积越大;码率越小,体积越小。 码率就是数据传输时单位时间传送的数据位数,一般我们用的单位是kbps即千位每秒。也就是取样率,单位时间内取样率越大,精度就越高,处理出来的文件就越接近原始文件,但是文件体积与取样率是成正比的,所以几乎所有的编码格式重视的都是如何用最低的码率达到最少的失真,围绕这个核心衍
2013-08-24 11:06:09 26521
原创 TCP的超时与重传
1. TCP提供可靠连接的途径是通过接受方确认发送方的数据实现的,数据和确认都可能丢失,这就需要及时发现数据或者确认丢失而进行重传。重传最重要的是要确定超时间隔和重传频率。2. 对于每个连接,TCP管理4个定时器来完成数据的传输:重传定时器坚持定时器(persist):使窗口大小保持不断流动;保活定时器(keepalive):检测空闲连接的另一端何时崩溃;2MSL定时器:测量一
2013-08-24 11:04:34 15898
转载 TCP快速重传与快速恢复原理分析
超时重传是TCP协议保证数据可靠性的一个重要机制,其原理是在发送一个数据以后就开启一个计时器,在一定时间内如果没有得到发送数据报的ACK报文,那么就重新发送数据,知道发送成功为止。这是数据丢包的情况下给出的一种修补机制。一般来说,重传发生在超时之后,但是如果发送端接收到3个以上的重复ACK,就应该意识到,数据丢了,需要重新传递。这个机制不需要等到重传定时器溢出,所以叫做快速重传,而快速重传以后,因
2013-08-24 10:15:28 4063
转载 TCP/IP协议头部结构体
TCP/IP协议头部结构体(转)网络协议结构体定义 view plaincopy to clipboardprint?// i386 is little_endian. #ifndef LITTLE_ENDIAN #define LITTLE_ENDIAN (1) //BYTE ORDER #else #error Redefine L
2013-08-21 12:03:48 2442
原创 linux环境应用程序LOG日志打印(C语言)
下面是前段时间做项目用到的一个输出LOG日志的代码,每个文件最多记录10W行,超过10W行,将当前日志文件重命名,重新再打开。直接看代码吧,很简单!int InitTCpRtpLog(){ char log[256]; mkdir(TCP_RTP_LOG_PATH, 0755); snprintf(log, sizeof(log), "%s/%s"
2013-08-20 09:30:33 7463
原创 PHP自学之路---报表及绘图技术(jpgraph库使用,Linux安装及配置说明)
JpGraph库简介 专门提供图表的类库。它使得作图变成了一件非常简单的事情,你只需从数据库中取出相关数据,定义标题,图表类型,然后的事情就交给JpGraph,只需掌握为数不多的JpGraph内置函数(可以参照JpGraph附带例子学习),就可以画出非常炫目的图表!LINUX 下安装及配置说明1、在官网上下载最新的jpgraph库, http://jpgraph.net/ (jp
2013-08-18 10:47:05 4225
原创 PHP自学之路---报表及绘图技术
Ø 报表a) 什么是报表报表就是用表格、图表等格式来动态显示数据。b) PHP绘图坐标系1、 坐标系介绍下图说明了PHP坐标系。坐标原点位于左上角,以像素为单位,像素是计算机屏幕上最小的显示单位,看下图: 2、 坐标体系--像素“像素”(Pixel)是由 Picture(图像)和 Element(元素)这两个单词
2013-08-14 23:01:39 3196
转载 TCP协议经典rfc主题总结
Richard Stevens的书虽好,但是他所要表达的是让你知其然。对于想精通tcp的同学来说,光知其然是远远不够的,你还需要更多的时间去了解其所以然,而翻阅rfc文档就是一种最好的方式,这样你就明白tcp为何这么设计了。这里总结了一下tcp核心主题对应的rfc文档,方便自己和大家查阅。:)rfc序列号主题内容描述793
2013-08-10 18:14:56 1847
原创 线程池创建及使用案例及调试函数assert()断言调试介绍
什么时候需要创建线程池呢?简单的说,如果一个应用需要频繁的创建和销毁线程,而任务执行的时间又非常短,这样线程创建和销毁的带来的开销就不容忽视,这时也是线程池该出场的机会了。如果线程创建和销毁时间相比任务执行时间可以忽略不计,则没有必要使用线程池了。 下面是Linux系统下用C语言创建的一个线程池。线程池会维护一个任务链表(每个CThread_worker结构就是一个任务)。 p
2013-08-10 10:51:37 2148
redis设计与实现 第二版 高清 带标签 PDF文档.zip
2019-07-22
linux VIM 配置文件
2014-12-02
live555项目Vs2010编译环境搭建及源码
2014-09-06
ubuntu apt-get 软件源局域网或公网设置
2014-06-25
易宝支付PHP代码
2013-09-07
XPath基础教程
2013-08-31
PJSIP 开源代码及文档
2013-01-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人