自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (2)
  • 收藏
  • 关注

转载 运算符

运算符包括赋值运算符、算术运算符、逻辑运算符、位逻辑运算符、位移运算符、关系运算符、自增自减运算符。大多数运算符都是二目运算符,即运算符位于两个表达式之间。单目运算符的意思是运算符作用于单个表达式。一、赋值运算符    赋值语句的作用是把某个常量或变量或表达式的值赋值给另

2011-10-17 16:36:32 723

转载 管道/消息队列/共享内存

管道通信(PIPE)管道通信方式的中间介质是文件,通常称这种文件为管道文件。两个进程利用管道文件进行通信时,一个进程为写进程,另一个进程为读进程。写进程通过写端(发送端)往管道文件中写入信息;读进程通过读端(接收端)从管道文件中读取信息。两个进程协调不断地进行写、读,便会

2011-10-14 15:09:56 3739

转载 POSIX Vs System V

POSIX Vs System V分类: unix/linux 2007-11-19 11:46 184人阅读 评论(0)收藏 举报 看《UNIX网络编程卷二: IPC》,基本是前一章介绍POSIX, 后一章就介绍 System V, 没有好好看各

2011-10-13 10:57:13 3205

原创 printf 格式对齐

int main(int argc, char* argv[]){ char insertTime[20] = {"1234567890"}; double insertTime1 = 12321; printf("|%-15s|/n",insertTime);  //左对齐,15位长度,不够补空格 printf("|%15s|/n",insertTime);  //右对齐,15位长度,不够补

2011-06-30 14:51:00 25730 1

原创 ldd命令

ldd命令该命令用于判断某个可执行的 binary 档案含有什么动态函式库。[root@test root]# ldd [-vdr] [filename]参数说明:--version  打印ldd的版本号-v --verbose  打印所有信息,例如包括符号的版本信息-d --data-relocs  执行符号重部署,并报告缺少的目标对象(只对ELF格式适用)-r --function-reloc

2011-06-28 14:53:00 747

原创 linux小细节

//调试时,全部打印set print element 0 //查看环境变量echo $LANG //设置环境变量export LANG=C

2011-06-22 16:45:00 520

原创 Tuxedo常用命令

1)tmloadcf     -编译TUXEDO UBB信息    #编译服务进程到TUX    tmloadcf -y ubbsimple2)tmunloadcf   -将TUXCONFIG转换成ASCII格式  3)tmboot       -启动TUXEDO系统服务      #开启所有的服务    tmboot -y 4)tmshutdown   -关闭所有或部分应用并

2011-06-22 16:43:00 6538

原创 查看IP地址命令

HP-UX:1、cat  /etc/hosts2、nslookup  tydic4f53、arp tydic4f54、netstat -inAIX:1、ifconfig -a2、netstat -in3、arp tydic36

2011-06-22 16:17:00 1270

原创 面向对象的分析设计程序思想通过封装、继承、多态将程序耦合度降低,使程序更加灵活、容易修改和易于复用。

面向对象的分析设计程序思想通过封装、继承、多态将程序耦合度降低,使程序更加灵活、容易修改和易于复用。聚合表示一种弱的拥有关系,体现是a对象可以包含b对象,但b对象不是a对象的一部分。合成是一种强拥有关系,体现了严格的部分和整体的关系。策略模式封装了变化。软件设计真正要做的许多内容就是发现职责并把那些职责相互分离。无论模块是多么的封闭,都会存在一些无法对之封闭的变化。既然不可能完

2011-06-13 16:55:00 1524

转载 排序2

//简单选择排序void SelectSort(SqList *L){ int i,j,min; for(i=1;ilength;i++) {  min = i;  for (j = i+1;jlength;j++)   {   if(L->r[j]r[min])   {    min=j;   }  }  if(i != min)  {   swap(L,i,min);      } }}

2011-06-13 16:34:00 470

原创 排序3

//构建堆(堆排序)void HeapAdjust(SqList *L,int s,int m){  int temp,j; temp=L->r[s]; for(j=2*s;j {  if(jr[j]r[j+1])  {   ++j;   /* j为关键字中较大的记录的下标 */  }  if(temp>=L->r[j])  {   break;   /* rc应插入在位置s上 */  }  L-

2011-06-13 16:34:00 501

转载 冒泡排序

#include "stdafx.h"#define MAXSIZE 10typedef struct{ int r[MAXSIZE+1]; int length;} SqList;void swap(SqList *p, int i, int j){ int temp = 0; temp = p->r[i]; p->r[i] = p->r[j]; p->r[j] = temp;}//

2011-06-13 16:17:00 589

原创 读文件操作

// 读文件.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include #include // 去除字符串头部的空白,只是改变指针位置,不做数据移动操作,例如" 111"-> "111"void RemoveHeadSpaceFromString(const ch

2011-06-13 16:14:00 644

原创 字符替换

 char * Replace( char * dest,const char * olds,const char * news ) {   if ( dest == NULL || olds == NULL || news == NULL ) return dest;  char temp[2048] = "";  const char * p = dest,* q = 0;  int len = strlen(olds);  while(q = strstr(p,olds))  {   strncat(

2011-03-14 12:02:00 549

转载 C++静态成员函数小结

<br />C++静态成员函数小结<br />类中的静态成员真是个让人爱恨交加的特性。我决定好好总结一下静态类成员的知识点,以便自己在以后面试中,在此类问题上不在被动。 静态类成员包括静态数据成员和静态函数成员两部分。<br /> <br />一 静态数据成员: 类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员。和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则。同时,静态数据成员还具有以下特点:<br />1.静态数据成员的定

2011-02-24 14:43:00 655

原创 dlopen方式

<br />void  *FunctionLib;  //动态库指针<br />const char *dlError; //错误信息指针 <br />typedef int (*FUN)(char *param1,char *param2,char *param3);<br />FunctionLib = dlopen("xxxxx.so",RTLD_LAZY);<br />dlError = dlerror();<br />if (dlError)<br />{<br />    printf("loa

2011-02-23 16:53:00 703

原创 替换错误信息里面的KEY 值

<br /> /**<br /> * @brief  替换错误信息里面的KEY 值<br /> *   <br /> * @param[in] <br /> *<br /> * @retval <br /> */   <br /> int ReplaceKeyValueMsg(char *sErrMsg, map<string,string> m_pKeyValue)<br /> {<br />  char *pBeg=NULL;<br />  char *pEnd=NULL;<br />  char sz

2011-02-15 10:34:00 5722

转载 malloc(),calloc()和realloc()函数的区别

<br />函数malloc()和calloc()都可以用来动态分配内存空间,但两者稍有区别。<br />malloc()函数有一个参数,即要分配的内存空间的大小:<br />void*malloc(size_tsize);<br />calloc()函数有两个参数,分别为元素的数目和每个元素的大小,这两个参数的乘积就是要分配的内存空间的大小。<br />void*calloc(size_tnumElements,size_tsizeOfElement);<br />如果调用成功,函数malloc()和函数

2010-10-15 10:46:00 747

转载 STL中的常用的vector,map,set,Sort用法

<br />STL中的常用的vector,map,set,Sort用法<br /> <br />C++的标准模板库(Standard Template Library,简称STL)是一个容器和算法的类库。容器往往包含同一类型的数据。STL中比较常用的容器是vector,set和map,比较常用的算法有Sort等。<br />.<br />一. vector<br />1.声明:<br />          一个vector类似于一个动态的一维数组。<br />          vector<int> a

2010-10-13 17:03:00 7086

原创 字符串替换

<br />//字符串替换函数<br />int ReplaceStr(char *v_sString,const char *vi_sOld,const char *vi_sNew)<br />{<br /> int nRet = 0;<br /> char sTmp[1024]={0};<br /> if(NULL == v_sString || NULL == vi_sOld || NULL == vi_sNew)<br /> {<br />  return nRet;<br /> }<br /> i

2010-10-13 16:52:00 605

原创 multimup使用

<br />//multimap<br />void MultimapOper()<br />{<br /> multimap<int, int> lObjMultiMap;<br /> multimap<int, int>::iterator iterMap;<br /> lObjMultiMap.insert( pair<int,int>(0,10) ); //添加元素<br /> lObjMultiMap.insert( pair<int,int>(0,1) );<br /> lObjMultiMap

2010-10-13 16:45:00 501

转载 LRU算法简介

<br /><br />LRU是Least Recently Used的缩写,即最近最少使用页面置换算法,是为虚拟页式存储管理服务的。<br />关于操作系统的内存管理,如何节省利用容量不大的内存为最多的进程提供资源,一直是研究的重要方向。而内存的虚拟存储管理,是现在最通用,最成功的方式—— 在内存有限的情况下,扩展一部分外存作为虚拟内存,真正的内存只存储当前运行时所用得到信息。这无疑极大地扩充了内存的功能,极大地提高了计算机的并发度。虚拟页式存储管理,则是将进程所需空间划分为多个页面,内存中只存放当前所需

2010-09-25 20:04:00 1130

转载 复习stl map

<br />c++<br />Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有序的好处。<br />1. map的构造函数<br />map<int, stri

2010-09-25 20:01:00 412

转载 数据库索引的作用和优点缺点

<br />为什么要创建索引呢?这是因为,创建索引可以大大提高系统的性能。 <br />第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 <br />第二,可以大大加快 数据的检索速度,这也是创建索引的最主要的原因。 <br />第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。 <br />第四,在使用分组和排序 子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。 <br />第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。 <b

2010-07-22 16:55:00 509

转载 stl 中List vector deque区别

stl 中List vector deque区别  stl提供了三个最基本的容器:vector,list,deque。   <br />    <br />  vector和built-in数组类似,它拥有一段连续的内存空间,并且起始地址不变,因此   <br />  它能非常好

2010-07-22 16:52:00 733

原创 TCP/UDP知识

  TCP/UDP知识 收藏 面试题(一): .winsock建立连接的主要实现步骤?答:服务器端:socket()建立套接字,绑定(bind)并监听(listen),用accept()等待客户端连接。客户端:socket()建立套接字,连接(connect)服务器,连接上后使用send()和recv(),在套接字上写读数据,直至数据交换完毕,closesocket()关闭套接字。服务器端:acc

2010-05-26 16:29:00 2293

原创 Socket 收藏

  Socket 收藏 要写网络程序就必须用Socket,这是程序员都知道的。而且,面试的时候,我们也会问对方会不会Socket编程?一般来说,很多人都会说,Socket编程基本就是listen,accept以及send,write等几个基本的操作。是的,就跟常见的文件操作一样,只要写过就一定知道。 对于网络编程,我们也言必称TCP/IP,似乎其它网络协议已经不存在了。对于TCP/IP,我们还

2010-05-25 15:45:00 455

转载 Linux进程间通信:管道及有名管道 收藏

 管道及有名管道 在本系列序中作者概述了 linux 进程间通信的几种主要手段。其中管道和有名管道是最早的进程间通信机制之一,管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。 认清管道和有名管道的读写规则是在程序中应用它们的关键,本文在详细讨论了管道和有名管道的通信机制的基础上,用实例对其读写规则进行了程序验

2010-05-15 13:07:00 404

原创 转 理解dup和dup2

理解dup和dup2 收藏 看到ChinaUnix(CU)上的一个帖子后,觉得自己对dup和dup2特别是后者的理解还是有欠缺的,这两个接口看起来很简单,但是理解起来也真的并不是那么容易。相信大部分在Unix/Linux下编程的程序员手头上都有《Unix环境高级编程》(APUE)这本超级经典巨著。作者在该书中讲解dup/dup2之前曾经讲过“文件共享”,这对理解dup/dup2还是很有帮助的。

2010-05-11 16:54:00 456

原创 文件加锁

//功能: 对文件加锁(适用于文件已经打开的情况)int FileLocker::LockFile(const int fd, const short nLockMode /* = F_WRLCK */){    struct flock aLock;    aLock.l_type = nLockMode;    aLock.l_whence = SEEK_SET;    aLock.l_sta

2010-05-11 12:53:00 410

原创 字段串操作

// 将数字转换成字段串string ToString(int iValue){    char szValue[16];    sprintf(szValue, "%d", iValue);    return string(szValue);}// 将字符串的的字符全部转换成小写char * ToLower(char * pszStr){    char * pch = pszStr;   

2010-05-04 17:10:00 484

原创 等待/释放信号量

// 等待信号量int semaphore_wait(int sem_id){   struct sembuf sem_b;    sem_b.sem_num = 0;    sem_b.sem_op = -1;    sem_b.sem_flg = SEM_UNDO;    return semop(sem_id, &sem_b, 1);}//释放信号量int semaphore_post(

2010-05-04 15:00:00 558

原创 获取/删除信号量

#include #include //获取信号量int get_sem(void){    string strTemp = getenv("HOME");    strTemp += "/rbirun";    key_t key = ftok(strTemp.c_str(),1); return semget(key,1,IPC_CREAT|0666);}// 删除信号量void d

2010-05-04 14:59:00 670

原创 创建信号量

//创建信号量void CGetBillFileCfg::CreateSem(){    string strTemp = getenv("HOME");    strTemp += "/rbirun";    key_t key = ftok(strTemp.c_str(), 1);    m_isemid = semget(key, 1, IPC_CREAT | 0666);    if

2010-05-04 14:47:00 758

转载 简单工厂模式

//运算操作基类   class COperation   {   public:       int m_nFirst;       int m_nSecond;       virtual double GetResult() //返回操作结果       {           double dResult=0;           return dR

2010-05-02 10:21:00 674

原创 linux stat函数讲解

stat函数讲解(转)  表头文件:    #include             #include 定义函数:    int stat(const char *file_name, struct stat *buf);函数说明:    通过文件名filename获取文件信息,并保存在buf所指的结构体stat中返回值:     执行成功则返回0,失败返回-1,错

2010-04-29 22:18:00 38912 3

原创 Linux C function() 参考手册

Linux C function()参考手册 http://man.chinaunix.net/develop/c&c++/linux_c/default.htm

2010-04-29 10:28:00 998

原创 string函数用法

string函数用法@函数名称:      strdup 函数原型:      char *strdup(const char *s) 函数功能:      字符串拷贝,目的空间由该函数分配 函数返回:      指向拷贝后的字符串指针 参数说明:      src-待拷贝的源字符串 所属文件:      #include #include #include int main() {

2010-04-28 21:31:00 758

原创 共享内存

// 创建共享内存void*  create_shm(size_t size){    string strTemp = getenv("HOME");    strTemp += "/rbirun"; key_t key = ftok(strTemp.c_str(),1); int shmid = shmget(key,size,IPC_CREAT | 0666); if(shmid ==

2010-04-27 12:45:00 512

c/c++回调函数

c/c++回调函数,回调函数的含义和使用。

2015-03-24

TimesTen技术论文

Oracle_TimesTen内存数据库_6.0版推荐编程实践实例

2012-09-21

空空如也

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

TA关注的人

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