展望2011
《unix环境高级编程》通读学习笔记(七)(第17、18、19章)
上一篇 /
下一篇 2007-08-04 18:09:55
/ 个人分类:unix环境高级编程的学习记录
第17章与Postscrīpt打印机通信
0NR;N0Yy]3i^[Nf017.1引言51Testing软件测试网Dc}g{v
我们现在开发一个可以与Postscrīpt打印机通信的程序。同样,与Postscrīpt打印机通信是全双工的,在发送数据给打印机时也要准备好从打印机读取状态消息。
H;V%x*n@6E,\0a0 51Testing软件测试网P#m(`Q,B1c
17.2 Postscrīpt通信机制
"RNzTBjv0我们并不是发送一个文件给打印机去打印—而是发送一个Postscrīpt程序给打印机让它去执行。在Postscrīpt打印机中通常有一个Postscrīpt解释器来执行这个程序,生成输出的页面。如果Postscrīpt程序有错误,Postscrīpt打印机(实际上是Postscrīpt解释器)返回一个错误消息,或许还会产生其他输出。51Testing软件测试网7Fh)Si {S"NT
Postscrīpt打印机通常通过RS-232串口与主机相连。这就如同终端的连接一样,所以第11章中的终端I/O函数在这里也适用。图17-1显示了典型的工作过程。51Testing软件测试网X9]'P7spv4T
51Testing软件测试网e cg1\-y8L,D
17.3假脱机打印
`+b(N9Y*m6G|I
to0 本章所开发的程序通过两种方式发送Postscrīpt程序给Postscrīpt打印机:单独的方式或者通过BSD行式打印机假脱机系统。通常使用假脱机系统,但提供一个独立的方式也很有用。51Testing软件测试网$P
{1mq,r-u@3k;K
UNIX SVR4同样提供了一个假脱机打印系统。
#tf2cY_iV,K L2A0
g,C:l%v"`t017.4源码
~'Uozzl.X%p0 51Testing软件测试网Qq*LAjzlu(Y6G
51Testing软件测试网d2^sOu!@*Jr
第18章调制解调器拨号器
~2z!thM"D018.1引言51Testing软件测试网FM%]a_/gJ1rNV
与调制解调器相关的程序要处理如此种类繁多的调制解调器很困难。在大多数UNIX系统中总有两个程序来处理调制解调器。第一个是远程登录程序,它允许我们拨通另外的计算机、登录和使用远程系统。在系统V中这个程序叫做cu,而BSD则称它为tip。另一个使用调制解调器的程序是uucico,它是UUCP包的一部分。51Testing软件测试网9E9| I8x+a.`6m
本章开发了一个程序来处理调制解调器所有需要处理的细节。51Testing软件测试网~BW"A'?%y%bC.\
+sl:j$V%z#HA'\M018.2历史
,[]6gz}Uh;a0 51Testing软件测试网3Q
e?m a1Gs]1q
18.3程序设计51Testing软件测试网kF0Q4]l ~
我们来分析一下调制解调器拨号器所应该具有的特性:
Ww&|0c/~*~/A/a X0(1)它必须在不改动源码的情况下支持新增加的调制解调器类型。
+oXF!A _xFf0(2)一定要使用一些特定形式的锁,以保证当那些持有锁的程序在非正常结束时能自动释
!h^$g&y'R|k!H G `7q0放它的锁。
5mG z\`p0(3)新的程序一定要能够使用我们所开发的所有特性。51Testing软件测试网f
KtKfX
(4)客户机程序,例如cu和tip,不应当需要特别权限。