程序相关
文章平均质量分 73
chary8088
这个作者很懒,什么都没留下…
展开
-
在2000和xp下隐藏进程
如何在windows2000和windows xp下隐藏进程,下面的代码实现了这个功能。 头文件: ////////////////////////////////////////HideProcess.hBOOL HideProcess();转载 2006-04-02 13:05:00 · 1275 阅读 · 0 评论 -
获取windows2003系统管理员密码
其实这个方法比较早就发现了,在参加安全焦点峰会之前我写的那一篇关于从内存中抓取密码一文中提到了这个(后来冰哥给面子,做为了备选议题)。当时也是很无心,发现在lsass进程中存放着最近一次登陆的管理员的密码,而且是明文的。不过在其他系统上并没有找到,所以当时也没有发表出来。今天看到WinEggDrop贴出了代码,写的非常完整,转了过来,大家看看吧。这里面有一点要注意,首先保存的密码是最近一次登陆的用转载 2006-04-20 18:56:00 · 5034 阅读 · 0 评论 -
C++字符串类string简析
字符串操作是一个不小的主题,在标准C++中,string字符串类成为一个标准,之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下的需要. 下面我们首先从一些示例开始学习下string类的使用.1)#include string>#include usi原创 2006-08-30 09:34:00 · 1552 阅读 · 0 评论 -
学习STL map, STL set之数据结构基础
STL map和set的使用虽不复杂,但也有一些不易理解的地方,如: 或许有得人能回答出来大概原因,但要彻底明白,还需要了解STL的底层数据结构。C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作。vector封装数组,list封装了链表,map和s转载 2006-09-08 10:32:00 · 1838 阅读 · 0 评论 -
RFC821-简单邮件传输协议(SMTP)中文版
RFC821-简单邮件传输协议(SMTP)中文版--------------------------------------------------------------------------------2003-4-10 16:17:22 1. 介绍 简单邮件传输协议(SMTP)的目标是可靠高效地传送邮件,它独立于传 送子系统而且仅要求一条可以保证传送数据单元顺序的通道。附录A,B,C转载 2006-05-05 17:06:00 · 8296 阅读 · 0 评论 -
定义一个动态的二维数组?
在C++中实现变长数组 1.变长一维数组 这里说的变长数组是指在编译时不能确定数组长度,程序在运行时需要动态分配内存空间的数组。实现变长数组最简单的是变长一维数组,你可以这样做: //文件名: array01.cpp #include using namespace std; int main(原创 2006-11-01 12:57:00 · 5342 阅读 · 0 评论 -
详细解说STL string
0 前言: string 的角色 1 string 使用 1.1 充分使用string 操作符 1.2 眼花缭乱的string find 函数 1.3 string insert, replace, erase 2 string 和 C风格字符串 3 string 和 Charactor Traits 4 string 建议 5 小结 6 附录 7 参考文章 0 前言: string 的角色转载 2006-11-09 09:58:00 · 966 阅读 · 0 评论 -
标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast
C 风格(C-style)强制转型如下: (T) expression // cast expression to be of type T 函数风格(Function-style)强制转型使用这样的语法: T(expression) // cast expression to be of type T 这两种形式之间没有本质上的不同,它纯粹就是一个把括号放在哪的问题。我把这原创 2006-11-15 19:13:00 · 1880 阅读 · 0 评论 -
如何避免重复包含一个头文件?#ifndef #define #endif #Pragma
#ifndef #define #endif animal.h//在头文件中包含类的定义及类成员函数的声明class animal{public: animal(); ~animal(); void eat(); void sleep(); virtual void breathe();};原创 2006-11-16 10:47:00 · 5733 阅读 · 0 评论 -
快速排序 C语言实现
Program 1#include "stdio.h"#include "conio.h"void quick_sort(int *a,int left,int right);main(){ int i,j,temp; int a[10]={30,50,40,10,60,70,80,20,27,11}; for(i=0;i printf("%d ",a[原创 2006-07-01 14:19:00 · 1758 阅读 · 0 评论 -
C语言面试题大汇总
主 题: C语言面试题大汇总,个人觉得还是比较全地!!! 作 者: free131 (白日?做梦!) 信 誉 值: 100 所属论坛: C/C++ C语言 问题点数: 0 回复次数: 392 发表时间: 2006-4-17 9:58:18 最近因为找工作,收集了很多C语言方面方面的面试题以及答案。现在新工作搞定了,决定把这些资料发出来转载 2006-07-01 15:00:00 · 1717 阅读 · 0 评论 -
C语言面试题汇总2
上面是基本问题,接下来是编程问题:本人很弱,这几个题也搞不定,特来求救:1)读文件file1.txt的内容(例如):123456输出到file2.txt:563412(逆序)2)输出和为一个给定整数的所有组合例如n=55=1+4;5=2+3(相加的数不能重复)则输出1,4;2,3。望高手赐教!!第一题,注意可增长数组的应用.#include #include int main(vo转载 2006-07-01 15:03:00 · 2290 阅读 · 0 评论 -
~~~二进制文件操作~~~
有这样一个二进制文件,大小在100M左右,里面存放了多张JPG图片,文件格式如下:无关数据区JPG图片数据区无关数据区JPG图片数据区无关数据区JPG图片数据区......已知JPG图片起始标志为:“FF D8 FF E0 00 10 4A”,结束标志为:“FF D9”。现想把这些JPG图片数据从该文件中读出来,生成一个个单独的图片文件,该如何做呢?帮你写了个程序, 测试了只含有一转载 2006-11-27 19:38:00 · 5017 阅读 · 2 评论 -
STL vector 容器介绍
STL vector 容器介绍A Presentation of the STL Vector Container (By Nitron)翻译 masterlee介绍std::vector,并且讨论它在STL中的算法和条件函数remove_if()。 Download Console Demo - 6.19 Kb Download MFC Demo - 14.6 Kb转载 2006-08-17 09:34:00 · 976 阅读 · 0 评论 -
CMM
CMM是指“能力成熟度模型”,其英文全称为Capability Maturity Model for Software,英文缩写为SW-CMM,简称CMM。它是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化、使企业能够更好地实现商业目标。转载 2006-08-17 16:48:00 · 1191 阅读 · 0 评论 -
关于内存对齐
什么是内存对齐 考虑下面的结构: struct foo { char c1; short s; char c2; int i; }; 假设这个结构的成员在内存中是紧凑排列的,假设c1的地址是0,那么s的地址就应该是1,c2的地址就是3,i的地转载 2006-12-28 13:00:00 · 1046 阅读 · 0 评论 -
FTP主动模式及被动模式
起初, FTP并不是应用于IP网络上的协议,而是ARPANET网络中计算机间的文件传输协议, ARPANET是美国国防部组建的老网络,于1960~1980年使用。在那时, FTP的主要功能是在主机间高速可靠地传输文件。目前FTP仍然保持其可靠性,即使在今天,它还允许文件远程存取。这使得用户可以在某个系统上工作,而将文件存贮在别的系统。例如,如果某用户运行Web服务器,需要从远程主机上取得HTML文原创 2007-03-23 12:46:00 · 7486 阅读 · 0 评论 -
Linux下的多线程编程
1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。 为什么有了进程的概念后,还要再引入线程呢?使用多线程到原创 2007-03-23 12:55:00 · 1377 阅读 · 0 评论 -
正则表达式30分钟入门
如何使用本教程最重要的是——请给我30分钟,如果你没有使用正则表达式的经验,请不要试图在30秒内入门。当然,如果你是超人,那自然得另当别论。别被下面那些复杂的表达式吓倒,只要跟着我一步一步来,你会发现正则表达式其实并没有你想像中的那么困难。当然,如果你看完了这篇教程之后,发现自己明白了很多,却又几乎什么都记不得,那也是很正常的——我认为,没接触过正则表达式的人在看完这篇教程后,能把提到过的转载 2007-07-08 15:26:00 · 1428 阅读 · 0 评论 -
变量与常量(1)
程序运行时,所用的数据首先要被放在内存。内存有两个最基本的属性,一个是它的地址(编号),另一个就是它存储的数据。就如一堆小箱子,编号用来区分到底是用到哪个箱子,数值就如箱子里面放着的东西。数据放在内存,我们给它一个名字,名字只不过是个符号,符号本身都是没有什么意义的,符号代表的东西才有意义。取了名字之后可以根据名字来方便取回我的数就行了。名字到最后都会影射到地址。可以说,名字是只是给人看转载 2007-07-09 08:44:00 · 1011 阅读 · 0 评论 -
怎样成为优秀的软件模型设计者?
我们期待自己成为一个优秀的软件模型设计者,但是,要怎样做,又从哪里开始呢?将下列原则应用到你的软件工程中,你会获得立杆见影的成果。1. 人远比技术重要你开发软件是为了供别人使用,没有人使用的软件只是没有意义的数据的集合而已。许多在软件方面很有成就的行家在他们事业的初期却表现平平,因为他们那时侯将主要精力都集中在技术上。显然,构件(components),EJB(Enterprise J原创 2007-05-23 17:42:00 · 753 阅读 · 0 评论 -
史上最精彩指针文章
C语言所有复杂的指针声明,都是由各种声明嵌套构成的。如何解读复杂指针声明呢?右左法则是一个既著名又常用的方法。不过,右左法则其实并不是C标准里面的内容,它是从C标准的声明规定中归纳出来的方法。C标准的声明规则,是用来解决如何创建声明的,而右左法则是用来解决如何辩识一个声明的,两者可以说是相反的。右左法则的英文原文是这样说的:The right-left rule: Start reading转载 2007-08-27 10:18:00 · 1267 阅读 · 0 评论 -
什么时候需要C++虚拟析构函数
////////////////////////////////////////////////////////////////////////////////#if CODE1#include//给出一个没有虚拟析构函数的基类classBase{public:Base(){std::cout"Base::Base()"<原创 2007-05-31 10:34:00 · 1159 阅读 · 0 评论 -
Trilogy公司的笔试题
Trilogy公司的笔试题如果n为偶数,则将它除以2,如果n为奇数,则将它加1或者减1。问对于一个给定的n,怎样才能用最少的步骤将它变到1。例如:n= 61n-- 60n/2 30n/2 15n++ 16n/2 8n/2 4n/2 2n/2 1我的想法是这样的:当n为偶数时,没得选择,除以2就好。所以关键是看对奇数时怎么处理。当n为奇数时,如果为1,就结束了,如果不为1,那肯定可以表示成下原创 2007-09-04 20:37:00 · 2913 阅读 · 0 评论 -
被误解的C++——磨刀不误砍柴工
磨刀不误砍柴工“磨刀不误砍柴工”这句老话用在C++身上是再合适不过了。如果把C++比喻成一把刀,那么它会是一把材质和形状都非常好的刀——只是没有开锋。所以我们要“磨刀”。C++这把刀材质坚硬,强度也高,或许还进行过表面处理。那自然很难磨,费时费力。不过,一旦磨好,便锋利无比,持久耐用。这还是值得的。C++的“磨刀”实际上就是开发库,各种可能的库,从基础库开始,到各类应用库。库越多,刀磨得越快。当转载 2007-09-11 09:06:00 · 1376 阅读 · 0 评论 -
C++ 虚函数表解析
前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使转载 2007-12-21 09:56:00 · 811 阅读 · 0 评论 -
详细讲解C++ 类的继承
一个私有的或保护的派生类不是子类,因为非公共的派生类不能做基类能做的所有的事,就是指在公开场合,但是在类内部可以的 一、引言在C++中,类是提供封装的逻辑单位,类的每一个对象都包含有描述其自身状态的数据集合,并且通过接收特定的消息来处理这个数据集合。如果程序设计人员能够通过增加、修改或替换指定类的部分内容的方法对该类进行剪裁,就可以适应不同的应用,从而在很大程度上增强了数据封装的价值,而转载 2008-01-22 15:19:00 · 2236 阅读 · 2 评论 -
进程间通信IPC
索引:1.fork、exec和exit对IPC对象的影响2.fcntl记录锁3.管道和FIFO的属性4.管道和FIFO的限制5.pipe函数6.popen和pclose7.mkfifo函数8.System V IPC共性描述9.msqid_ds结构10.msgget函数11.msgsnd函数12.msgrcv函数13.msgctl函数14.在System V消息队列上使用select和poll转载 2008-04-24 12:39:00 · 1131 阅读 · 0 评论 -
shmget() -- 建立共享内存
#include #include int shmget(key_t key, size_t size, int shmflg);key_t key----------------------------------------------- key标识共享内存的键值: 0/IPC_PRIVATE。 当key的取值为IPC_PRIVATE,则函数shmget()将创建一块新原创 2008-04-24 12:36:00 · 2410 阅读 · 0 评论 -
Socket select的用法
一、winsock中 #include 原型 int select(int nfds,fd_set* readfds,fd_set* writefds,fd_set* exceptfds,const原创 2008-05-04 15:37:00 · 1765 阅读 · 1 评论 -
守护进程(Daemon)
守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进 程。 Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任务。 比如,作业规划进程crond,打印进程lpd等。 守护进程的编程本身并不复杂,复杂的是各种版本的Un转载 2008-05-05 15:37:00 · 792 阅读 · 0 评论 -
类对象的指针和引用
使用类对象的指针和引用——特别是引用,在面向对象编程和函数形参说明方面——特别是后者,非常重要。类对象可能涉及相当多的数据,因此使用按值传递机制(将函数形参指定为对象)可能非常耗时和低效,因为需要复制每一个实参对象。还有一些对类的某些操作而言必不可少的技术也需要使用引用。比如稍后将看到的那样,如果不使用引用形参,我们将不能编写复制构造函数。 类对象的指针我们以声明其他指针的相同方式,声明指原创 2008-07-04 12:57:00 · 8132 阅读 · 0 评论 -
linux下fork的使用
fork 创建一个新的进程,新创建的进程是子进程,它是对父进程以后代码的一个复制,通常用来做多进程的服务器,也可以在子进程中运行独立的代码。用getpid可以判断当前是子进程还是父进程。 看下面这个例子:#include #include #include int main(){ pid_t pid; static int n = 0; printf("fork!/n原创 2008-05-07 14:46:00 · 1028 阅读 · 0 评论 -
2008腾讯的笔试面试题
1、请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句2、如何输出源文件的标题和目前执行行的行数3、两个数相乘,小数点后位数没有限制,请写一个高精度算法4、写一个病毒5、有A、B、C、D四个人,要在夜里过一座桥。他们通过这座桥分别需要耗时1、2、5、10分钟,只有一支手电,并且同时最多只能两个人一起过桥。请问,如何安排,能够在17分钟内这四个人都过桥? 20转载 2008-07-16 10:34:00 · 1573 阅读 · 0 评论 -
pthread_join函数及linux线程
pthread_join使一个线程等待另一个线程结束。代码中如果没有pthread_join主线程会很快结束从而使整个进程结束,从而使创建的线程没有机会开始执行就结束了。加入pthread_join后,主线程会一直等待直到等待的线程结束自己才结束,使创建的线程有机会执行。所有线程都有一个线程号,也就是Thread ID。其类型为pthread_t。通过调用pthread_self()函数可以获转载 2008-05-08 18:14:00 · 14990 阅读 · 2 评论 -
linux中wait系统调用
系统中的僵尸进程都要由wait系统调用来回收,下面就通过实战看一看wait的具体用法:wait的函数原型是:#include /* 提供类型pid_t的定义 */#include pid_t wait(int *status);返回值: 如果执行成功则返回子进程识别码(PID),如果有错误发生则返回-1。失败原因存于errno中。进程一旦调用了wait,就立即阻塞自己,由转载 2008-05-09 14:07:00 · 4385 阅读 · 0 评论 -
高质量C++/C编程指南
高质量C++/C编程指南文件状态[ ] 草稿文件[√] 正式文件[ ] 更改正式文件文件标识:当前版本: 1.0作 者: 林锐 博士完成日期: 2001年7月24日http://man.chinaunix.net/develop/c&c++/c/c.htm(第 1/86 页)2006-9-22 23:02:13高质量C++/C编程指南版 本 历 史版本/状态作者参与者起止日期备注V 0.9草稿文转载 2008-07-22 17:13:00 · 2925 阅读 · 0 评论 -
UML 类与类之间的关系
UML 类与类之间的关系转载 2008-05-14 21:39:00 · 724 阅读 · 0 评论 -
UML 类与类之间的关系
类与类之间的关系对于理解面向对象具有很重要的作用,以前在面试的时候也经常被问到这个问题,在这里我就介绍一下。类与类之间存在以下关系: (1)泛化(Generalization) (2)关联(Association) (3)依赖(Dependency) (4)聚合(Aggregation)UML图与应用代码例子:1.泛化(Generalizat转载 2008-05-14 21:47:00 · 1551 阅读 · 0 评论 -
UML类图(高级)
超过基础到此为止,我已经介绍了类图的基础,但是请继续往下读!在下面的部分中,我将会引导你到你会使用的类图的更重要的方面。这些包括UML 2 规范中的接口,其它的三种关联类型,可见性和其他补充。接口 在本文的前面,我建议你以类来考虑分类器。事实上,分类器是一个更为一般的概念,它包括数据类型和接口。关于何时、以及如何高效地在系统结构图中使用数据类型和接口的完整讨论,不在本文的讨论范围之内。转载 2008-05-14 21:42:00 · 1901 阅读 · 2 评论