- 博客(39)
- 资源 (2)
- 收藏
- 关注
转载 运算符
运算符包括赋值运算符、算术运算符、逻辑运算符、位逻辑运算符、位移运算符、关系运算符、自增自减运算符。大多数运算符都是二目运算符,即运算符位于两个表达式之间。单目运算符的意思是运算符作用于单个表达式。一、赋值运算符 赋值语句的作用是把某个常量或变量或表达式的值赋值给另
2011-10-17 16:36:32
815
转载 管道/消息队列/共享内存
管道通信(PIPE)管道通信方式的中间介质是文件,通常称这种文件为管道文件。两个进程利用管道文件进行通信时,一个进程为写进程,另一个进程为读进程。写进程通过写端(发送端)往管道文件中写入信息;读进程通过读端(接收端)从管道文件中读取信息。两个进程协调不断地进行写、读,便会
2011-10-14 15:09:56
3795
转载 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
3261
原创 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
25971
原创 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
823
原创 linux小细节
//调试时,全部打印set print element 0 //查看环境变量echo $LANG //设置环境变量export LANG=C
2011-06-22 16:45:00
545
原创 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
7367
原创 查看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
1348
原创 面向对象的分析设计程序思想通过封装、继承、多态将程序耦合度降低,使程序更加灵活、容易修改和易于复用。
面向对象的分析设计程序思想通过封装、继承、多态将程序耦合度降低,使程序更加灵活、容易修改和易于复用。聚合表示一种弱的拥有关系,体现是a对象可以包含b对象,但b对象不是a对象的一部分。合成是一种强拥有关系,体现了严格的部分和整体的关系。策略模式封装了变化。软件设计真正要做的许多内容就是发现职责并把那些职责相互分离。无论模块是多么的封闭,都会存在一些无法对之封闭的变化。既然不可能完
2011-06-13 16:55:00
1557
转载 排序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
511
原创 排序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
530
转载 冒泡排序
#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
621
原创 读文件操作
// 读文件.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
674
原创 字符替换
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
583
转载 C++静态成员函数小结
<br />C++静态成员函数小结<br />类中的静态成员真是个让人爱恨交加的特性。我决定好好总结一下静态类成员的知识点,以便自己在以后面试中,在此类问题上不在被动。 静态类成员包括静态数据成员和静态函数成员两部分。<br /> <br />一 静态数据成员: 类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员。和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则。同时,静态数据成员还具有以下特点:<br />1.静态数据成员的定
2011-02-24 14:43:00
686
原创 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
747
原创 替换错误信息里面的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
5762
转载 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
775
转载 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
7156
原创 字符串替换
<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
627
原创 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
529
转载 LRU算法简介
<br /><br />LRU是Least Recently Used的缩写,即最近最少使用页面置换算法,是为虚拟页式存储管理服务的。<br />关于操作系统的内存管理,如何节省利用容量不大的内存为最多的进程提供资源,一直是研究的重要方向。而内存的虚拟存储管理,是现在最通用,最成功的方式—— 在内存有限的情况下,扩展一部分外存作为虚拟内存,真正的内存只存储当前运行时所用得到信息。这无疑极大地扩充了内存的功能,极大地提高了计算机的并发度。虚拟页式存储管理,则是将进程所需空间划分为多个页面,内存中只存放当前所需
2010-09-25 20:04:00
1172
转载 复习stl map
<br />c++<br />Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有序的好处。<br />1. map的构造函数<br />map<int, stri
2010-09-25 20:01:00
448
转载 数据库索引的作用和优点缺点
<br />为什么要创建索引呢?这是因为,创建索引可以大大提高系统的性能。 <br />第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 <br />第二,可以大大加快 数据的检索速度,这也是创建索引的最主要的原因。 <br />第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。 <br />第四,在使用分组和排序 子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。 <br />第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。 <b
2010-07-22 16:55:00
530
转载 stl 中List vector deque区别
stl 中List vector deque区别 stl提供了三个最基本的容器:vector,list,deque。 <br /> <br /> vector和built-in数组类似,它拥有一段连续的内存空间,并且起始地址不变,因此 <br /> 它能非常好
2010-07-22 16:52:00
750
原创 TCP/UDP知识
TCP/UDP知识 收藏 面试题(一): .winsock建立连接的主要实现步骤?答:服务器端:socket()建立套接字,绑定(bind)并监听(listen),用accept()等待客户端连接。客户端:socket()建立套接字,连接(connect)服务器,连接上后使用send()和recv(),在套接字上写读数据,直至数据交换完毕,closesocket()关闭套接字。服务器端:acc
2010-05-26 16:29:00
2348
原创 Socket 收藏
Socket 收藏 要写网络程序就必须用Socket,这是程序员都知道的。而且,面试的时候,我们也会问对方会不会Socket编程?一般来说,很多人都会说,Socket编程基本就是listen,accept以及send,write等几个基本的操作。是的,就跟常见的文件操作一样,只要写过就一定知道。 对于网络编程,我们也言必称TCP/IP,似乎其它网络协议已经不存在了。对于TCP/IP,我们还
2010-05-25 15:45:00
476
转载 Linux进程间通信:管道及有名管道 收藏
管道及有名管道 在本系列序中作者概述了 linux 进程间通信的几种主要手段。其中管道和有名管道是最早的进程间通信机制之一,管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。 认清管道和有名管道的读写规则是在程序中应用它们的关键,本文在详细讨论了管道和有名管道的通信机制的基础上,用实例对其读写规则进行了程序验
2010-05-15 13:07:00
429
原创 转 理解dup和dup2
理解dup和dup2 收藏 看到ChinaUnix(CU)上的一个帖子后,觉得自己对dup和dup2特别是后者的理解还是有欠缺的,这两个接口看起来很简单,但是理解起来也真的并不是那么容易。相信大部分在Unix/Linux下编程的程序员手头上都有《Unix环境高级编程》(APUE)这本超级经典巨著。作者在该书中讲解dup/dup2之前曾经讲过“文件共享”,这对理解dup/dup2还是很有帮助的。
2010-05-11 16:54:00
484
原创 文件加锁
//功能: 对文件加锁(适用于文件已经打开的情况)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
433
原创 字段串操作
// 将数字转换成字段串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
503
原创 等待/释放信号量
// 等待信号量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
604
原创 获取/删除信号量
#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
715
原创 创建信号量
//创建信号量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
788
转载 简单工厂模式
//运算操作基类 class COperation { public: int m_nFirst; int m_nSecond; virtual double GetResult() //返回操作结果 { double dResult=0; return dR
2010-05-02 10:21:00
709
原创 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
39095
原创 Linux C function() 参考手册
Linux C function()参考手册 http://man.chinaunix.net/develop/c&c++/linux_c/default.htm
2010-04-29 10:28:00
1030
原创 string函数用法
string函数用法@函数名称: strdup 函数原型: char *strdup(const char *s) 函数功能: 字符串拷贝,目的空间由该函数分配 函数返回: 指向拷贝后的字符串指针 参数说明: src-待拷贝的源字符串 所属文件: #include #include #include int main() {
2010-04-28 21:31:00
779
原创 共享内存
// 创建共享内存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
527
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人