进程是一个动态的概念,包括从进程的创建申请,PCB(Process Control Block进程控制块,一般操作系统实现为一个表格(struct))的创建,地址空间的内存分配,模块代码载入并执行,执行完以后进行撤销,整个过程被称为"进程"。在Win32下,一个进程有4G的逻辑空间。但我们也常把它作为静态概念来使用,在Win32下,一个EXE的执行就是一个进程(如果它内部又开了新进程,另当别论)。
这是贝尔实验室的又一杰作,同时,也伤透了全球太多程序员的心,脑细胞杀伤力十分之大。C++比大多数初学者想像的都要复杂得多,它基本包括:一个类化了的C语言,模板,标准模板库.很多初学者掌握的C++仅仅只是一个类化了的C语言的一个子集(不相信的话,你不妨看一看<<Modern C++ Design>>中的C++代码,看看能理解多少)。更麻烦的是使用C++不得不谈到面向对象的编程风格,这同样比初学者想像的难很多,要有打持久战的准备。而最让我这类C++爱好者忧心的还是它目前在Win平台中的前景,在.net平台上很难找出不用C#而使用C++写新代码的理由:( 。而它的复杂性和目前许多诸如java/C#及一些动态语言(python/ruby)比起来,开发效率显然的低,大有退出上层应用程序开发的趋势。这么一个包含了最多范式的近乎完美的语言,我实在不想放弃。我唯有祈祷在未来C++的路可以走得更远更好一些。
在程序中,当我们得到某一个对象的实例或者指针时,大多数时候并不能直接肯定它的类型(都是继承以及类型转换惹的祸),这个时候,依靠VC4.0或更高版本的编译器提供的RTTI支持,调用库函数typeid()即可在运行时获取这个对象的“类型信息”,在一些动态处理中“类型信息”很重要,获取了类型信息以后,你就可以有十分把握地调用该类型的相关操作,或者类型转换,或动态生成。因其重要性,在JAVA和.net库中借助单根继承和“虚拟机”对此有了更优雅的做法,每一个自object继承的类天然就有了表述自己类型信息的能力(继承的好处),并且容易扩展,现在你需要类型信息的时候,大可直接ask那个对象:tell me, what type are you?它就会告诉你答案。
long long ago,随着军事的日益发展,情报的重要性日益提高,如何获得准确的情报成为军事上的一大重点,伴随而来的另一个问题则是如何尽量保证自己的情报在被敌人截获后(这总是无可避免的)敌人依然无法获得该情报的信息,防止情报外泄。不妨让我们以今人的智慧来设身处地的想一想,有什么好的解决方法……首先想到的当然是用密文不要用明文,把明文按某种规则打乱为密文、或者让明文与密文有某种一一对应的规则 ,这样即使密文泄露,只要敌人不知道我的明文与密文之间转换的规则,它将一无所获。这是一种简单且行之有效的方法,即便到了近代一战二战中,还被广泛使用着,当然它的这个规则往往是动态的,甚至可能相当复杂。然而这样的方案在理论上有一个重大的缺陷,那就是你如何安全地传递“规则”?两地之间要确保能互相将密文变成明文,必须有共同的规则,那么就至少需要"一次"安全地将“规则”从一地传到另一地,这在理论上是无法保证的,所以整个的安全体系也就无法让人完全地放心,一旦规则泄露,对密文体系的打击则是致命的。有没有什么更好的办法呢?嗯,如果你以前没有接触过的话,我估计你是想不出了。解决的方法正是公共密钥体系。