如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
下载第5章文件O/I很少有刚刚听到的事情,就被认可。如果有些事情突然降临,我们中的大多数就会陷入困境。不久前,我经历了使我认真考虑的事情。作为咨询业务的一部分,我到国内不同地方,并举办关于编程的技术讲座。有一次,我在客户的现场开设讲座时,一个参加讲座的年轻女士进来告诉我由于耳聋,所以有两名手语翻译与她坐在一起。过去,我与外国学生一起工作,他们通常只有一个翻译,所以我感到奇怪为什么她需要两个翻译。我很快明白了,其原因是手语有两种共同的形式。一种形式,通常称作聋哑字母表,需要手指一个字母一个字母地拼写每个字。更方便的方法是美国手语(LSA),用手势表示整个字—那么,某个手势表示“喝水”,而另外的手势表示“快乐”。显然,LSA比聋哑字母表更好使用。当我询问其中一个翻译,是否使用LSA时,女士告诉我,他们不能过多地使用它,因为很多技术术语,LSA的手势不能表示。在超负荷前,每个翻译持续大约一个小时做手语翻译,所以一个翻译工作时,另一个翻译在休息。想到这个学生(顺便说一下,她在课堂上做得相当好)。她必须忍受整整四天的课程,一个字母一个字母地拼写全部内容,这真令人惊讶。尽管我的耳还不聋,但我的听力有点困难。我的妻子帕特,在看一个特别的电视广告节目时,总是在偷偷地笑。节目讲的是一对老夫妇在餐厅,广播员说:“无论去哪里,老人都带着他的助听器。”侍者向他们介绍特色食品后,老人转向他的妻子问:“他说了什么?”其实老人的“助听器”是他的妻子。显然地,我的妻子想到我有时与电视中的老人很相同。我的听力不象以前那样好,这是事实。但是,我注意到我的大部分听力损失是由好打听而不是由吵闹引起的。如果我坐在一个安静的房间里,我能听得到任何事情,而在拥挤的餐厅里我就几乎什么也听不见。我想,当试图偷听和挑选不同的谈话时,我的脑子听不进任何东西的。另一方面,随机的噪声似乎在扼杀我的听力,所以或许我的好打听的理论是错的。尽管如此,我猜想,专注于单一的声音会对我帮助很大。indowsWwodni(及许多其他的现代操作系统)的优点之一是可以传送许多同时进行的谈话。这个能力使网络服务器在其他事情之中也是可行的。如果运作像电话一样,Wbe几乎不会如此的流行,是吧?若如此,你也许试图在AltaVatsi搜索,而由于有些人也在搜索,该线路大概是占线。在第3章中,已经看到,多进程和线程可以使计算机看起来像同时地做许多事情。当你想做不同的事情时,真棒。而你想要反复做同一件事情时(像提供Wbe页),会发生什么呢?是的,你仍然可以使用线程,但也许会发现用这种方法而陷入问题。148Windows2000系统编程下载5.1为什么异步O/I假设要设计一个Wbe服务器。每一次客户请求网页,就创建一个新线程,且线程处理该请求,的确如此运作。不过,创建线程在系统资源方面稍微有些昂贵。另外,可以创建多少线程,有一些实际的限制。是的,对于小型服务器来说,这不是问题。而大型Wbe站可以同时获得成千上万的请求。用共享负载的线程池,服务于这些请求,也许是个好主意,即为异步O/I的目的之一。要同时处理多重的O/I资源时,就出现另外的问题。假设编写终端程序,需要读取来自串口和键盘数据方法,而互相并不等待。而要立即对任何输入反应,答案还是异步O/I。在处理各种形式的O/I前,弄懂sWwodni怎样处理文件和设备O/I,是个好主意。如果熟悉CreateFileliFetaerC及其使用,可以向前跳到本章的3.5节“使用线程”。5.2回顾文件O/I如果时常要打开一个文件,就使用一些库子程序(例如,nepof)。多数语言提供非常方便的高级方式操作文件。然而,有时必须在操作系统级别直接打开文件,而绕过更高级别的处理。也许要这样做的理由是执行一些类型的异步O/I。用来打开文件的系统命令是eliFetaerC。这也许是所有IPA命令的最差命名。eliFetaerC也许实际上在磁盘上创建文件。另一方面,也许没有创建文件。它依赖传送给该命令的标志。CreateFileliFetaerC的更好名字应该是eldnaHeliFetaerC,因为这才是它真正所做的。创建文件句柄,可以用于文件操作。也许文件已经存在,或许该命令创建文件。CreateFileliFetaerC给出几个参数(见表1-5)。当然,必须提供文件名。还必须规定,要怎样访问文件(读、写或既读又写),如果允许共享该文件和安全属性的话。其次,规定两组标志。第一组标志告知该命令是否应当创建文件,或仅仅打开现有的文件。第二组标志设置各种选项,并告知若sWwodni创建文件,该文件应当有何属性,最后的参数是指向模板文件的句柄。如果提供创建文件的句柄和命令