`
文章列表
C 风格(C-style)强制转型如下: (T) exdivssion // cast exdivssion to be of type T 函数风格(Function-style)强制转型使用这样的语法: T(exdivssion) // cast exdivssion to be of type T   这两种形式之间没有本质上的不同,它纯粹就是一个把括号放在哪的问题。我把这两种形式称为旧风格(old-style)的强制转型。 使用标准C++的类型转换符:static_cast、dynamic_cast、reinterdivt_cast、和const_cast。 3.1 ...
很好的控制线程,让线程互斥,互相协调工作,共享数据,这个问题有很多种解决办法,不过我个人觉得使用信号量控制线程特别方便。会想到用多线程控制程序,是由于上学期我们要做一个控制电机转速的课程设计,开始编写的程序都是一个线程控制的。后来课程设计结束了,一次在看多线程的演示程序的时候突然想到,原来的那个电机控制程序完全可以写成多线程,可是由于课程设计结束了,没有硬件供你调试,就自己写了个多线程的练习程序。控制信号量几个主要的函数: WaitForSingleObject();//等待信号量有效 CreatSemaphore();//申请信号量 OpenSemaphore();//打开信号量 Releas ...
命令如下:  dpkg --get-selections|grep linux  此命令列出所有安装的内核版本  sudo apt-get remove linux-image-2.6.24-12-generic linux-image-xxxxxx-generic就是要删除的内核版本
线程池:简单地说,线程池 就是预先创建好一批线程,方便、快速地处理收到的业务。比起传统的到来一个任务,即时创建一个线程来处理,节省了线程的创建和回收的开销,响应更快,效率更高。   在linux中,使用的是posix线 ...
对消息队列的操作无非有下面三种类型: 1、 打开或创建消息队列消息队列的内核持续性要求每个消息队列都在系统范围内对应唯一的键值,所以,要获得一个消息队列的描述字,只需提供该消息队列的键值即可; 注:消息队列描述字是由在系统范围内唯一的键值生成的,而键值可以看作对应系统内的一条路经。 2、 读写操作 消息读写操作非常简单,对开发人员来说,每个消息都类似如下的数据结构: struct msgbuf { long mtype; char mtext[1]; };   mtype成员代表消息类型,从消息队列中读取消息的一个重要依据就是消息的类型;mtext是消息内容,当然长度不一定 ...
QCIF全称Quarter common intermediate format。QCIF是常用的标准化图像格式。在H.323协议簇中,规定了视频采集设备的标准采集分辨率。QCIF = 176×144像素。 CIF是常用的标准化图像格式(Common Intermediate Format)。在H.323协议簇中,规定了视频 ...
static void trim(char *s) { char *c = s + strlen(s) - 1; while (isspace(*c) && c > s) { *c = '\0'; --c; } }  
ioctl 函数   本函数影响由fd 参数引用的一个打开的文件。   #include<unistd.h> int ioctl( int fd, int request, .../* void *arg */ ); 返回0 :成功    -1 :出错   第三个参数总是一个指针,但指针的类型依赖于request 参数。 我们可以把和网络相关的请求划分为6 类:
用两个sip电话通过asterisk服务互通打电话,需要配置sip.conf,extension.conf: sip.conf [general] context=default;默认进入的拨号方案 allowoverlap=no bindport=5060;监听端口 bindaddr=0.0.0.0;监听所有过来的电话 srvlookup=yes [101] type=friend;用户类型 secret=101;密码 host=dynamic;动态IP context=internal;extension拨号方案 username=101;用户名 callgroup=1;呼叫组 picku ...
一、更新源 1、设置root用户密码      [cissco@ubuntu ~] $ sudo passwd root Enter new UNIX password:输入密码 Retype new UNIX password:重新输入密码  2、用文本编辑器打开/etc/apt/source.list文件 cissco@cissco:$ sudo su root root@cissco:~# gedit /etc/apt/source.list & ...
功能描述:根据文件描述词来操作文件的特性。 文件控制函数          fcntl -- file control LIBRARY          Standard C Library (libc, -lc) SYNOPSIS          #include <fcntl.h>;          int fcntl(int fd, int cmd);       ...
【 getsockopt/setsockopt系统调用】       功能描述: 获取或者设置与某个套接字关联的选 项。选项可能存在于多层协议中,它们总会出现在最上面的套接字层。当操作套接字选项时,选项位于的层和选项的名称必须给出。为了操作套接字层的选项,应该 将层的值指定为SOL_SOCKET。为了操作其它层的选项,控制选项的合适协议号必须给出。例如,为了表示一个选项由TCP协议解析,层应该设定为协议 号TCP。 用法: #include <sys/types.h> #include <sys/socket.h> int getsockopt(i ...
/* * ThreadQueue.h * * Created on: 2008-11-13 * Author: root */ #ifndef THREADQUEUE_H_ #define THREADQUEUE_H_ #include <pthread.h> #include <iostream> using std::cout; using std::endl; const int QUEUESIZE = 20; template<class Object> class ThreadQueue { public: ThreadQu ...
安装完了Ubuntu8.04,那么下面要做的就是配置自己的系统,让Ubuntu更适合自己的使用习惯。 虽然一般的电脑Ubuntu都不用驱动。但是因为一些开源的原因和系统的要求Ubuntu肯定无法满足所有人的要求,这时候学会打造一个纯粹属于自己的系统就相当重要了。 因为Ubuntu是很依赖网络的一个Linux发行版。所以一般如果想玩转Ubuntu最起码的条件就是拥有一个连接互联网的环境。当然你也可以下载Ubuntu8.04 DVD版本来满足一些使用配置需求。但是我觉得能上网对Ubuntu很重要。原文来自[何必呢] 至于Ubuntu的安装你可以下载刻盘安装,也可以参照何必呢的介绍的方法硬盘安装。 ...
Web Service概述 Web Service的定义 W3C组织对其的定义如下,它是一个软件系统,为了支持跨网络的机器间相互操作交互而设计。Web Service服务通常被定义为一组模块化的API,它们可以通过网络进行调用,来执行远程系统的请求服务。 这里我们从一个程序员的视角来观察web service。在传统的程序编码中,存在这各种的函数方法调用。通常,我们知道一个程序模块M中的方法A,向其发出调用请求,并传入A方法需要的参数P,方法A执行完毕后,返回处理结果R。这种函数或方法调用通常发生在同一台机器上的同一程序语言环境下。现在的我们需要一种能够在不同计算机间的不同语言编写的应用程序系统 ...
Global site tag (gtag.js) - Google Analytics