⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000017.htm

📁 一份很好的linux入门资料
💻 HTM
📖 第 1 页 / 共 5 页
字号:
&nbsp;&nbsp;:af=/var/adm/psacct:lf=/var/adm/pslog:sd=/var/spool/pslpd:\&nbsp;&nbsp;<BR>&nbsp;&nbsp;:if=/usr/local/lib/psif:&nbsp;&nbsp;<BR>图17.4&nbsp;一个PostScript打印机对应的printcap项&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;第一行给出了这个项的名称,ps或者lp。br的值指定了波特率是19200。lp指&nbsp;&nbsp;<BR>定了该打印机的特殊设备文件路径名。sf是格式送纸,sh是指打印作业的开始加入&nbsp;&nbsp;<BR>一个打印页头,rw是指定打印机以读写方式打开。如17.2节中所述,这一项是Pos&nbsp;&nbsp;<BR>tScript打印机所必须的。&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;下面的四个域指定了在旧版本BSD风格的stty结构中需要打开和关闭的位。(&nbsp;&nbsp;<BR>我们在这里对此进行叙述是因为大多数使用printcap文件的BSD系统都支持这种老&nbsp;&nbsp;<BR>式的设置终端方式的方法。在这一章的源程序文件中,我们可以看到如何使用第十&nbsp;&nbsp;<BR>一章中所述的POSIX.1函数来设置所有的终端参数。)首先,fc掩码清除sg_flags&nbsp;&nbsp;<BR>元素中的下列值:EVENP和ODDP(关闭了奇偶校验)、RAW(关闭raw模式)、CRMO&nbsp;&nbsp;<BR>D(关闭了在输入输出中的CR/LF映射)、ECHO(关闭回显)和LCASE(关闭输入输&nbsp;&nbsp;<BR>出中的大小写映射)。然后,fs掩码打开了以下位:&nbsp;CBREAK(一次输入一个字符&nbsp;&nbsp;<BR>)和TANDEM(主机产生Control-S,Control-Q流控制)。接着,xc掩码清除了本地&nbsp;&nbsp;<BR>模式字中各位。最后,xs掩码设置了本地模式字中的下列两位:LDECCTQ(Contro&nbsp;&nbsp;<BR>l-Q重新开始输出,Control-S则停止输出)和LLITOUT(压缩输出转换)。&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;af和lf字符串分别指定了记帐文件和日志文件。sd指定了假脱机的目录,而i&nbsp;&nbsp;<BR>f指定了输入过滤器。&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;输入过滤器可被所有的打印文件所激活,格式如下:&nbsp;&nbsp;<BR>filter&nbsp;-n&nbsp;loginname&nbsp;-h&nbsp;hostname&nbsp;acctfile&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;这里还有几个可选的参数(这些参数有可能被PostScript打印机所忽略)。要&nbsp;&nbsp;<BR>打印的文件在标准输入中,打印机(printcap文件中的lp项)设在标准输出。标准&nbsp;&nbsp;<BR>输入也可以是一个管道。&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;使用一个PostScript打印机,输入过滤器首先查询输入文件的开始两个字符,&nbsp;&nbsp;<BR>确定这个文件是一个ASCII文本文件还是一个PostScript程序。通常的惯例是前两&nbsp;&nbsp;<BR>个字符为%!表示这是一个PostScript程序。如果这个文件是PostScript程序,lpr&nbsp;&nbsp;<BR>ps程序(在下面会详细讨论)就把它发送到打印机。如果这个文件是文本文件,就&nbsp;&nbsp;<BR>使用其他程序将它转换成PostScript程序。&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;在printcap文件中提到的psif过滤器是lprps软件包提供的。在这个包中的te&nbsp;&nbsp;<BR>xtps可以将文本文件转换成PostScript程序。图17.5概略表示了这些程序。&nbsp;&nbsp;<BR>图17.5&nbsp;lprps系统示意图&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;图中有一个程序psrev没有表示出来,该程序将PostScript程序生成的页面反&nbsp;&nbsp;<BR>转过来,当PostScript程序打印机在正面而不是在反面打印输出时,就可以使用此&nbsp;&nbsp;<BR>程序。&nbsp;&nbsp;<BR>概述以后,我们就来看一下lprps程序的设计和编码。&nbsp;&nbsp;<BR>17.4&nbsp;&nbsp;源程序&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;我们先看main()调用的函数,以及它们是如何与打印机交互作用的。图17.&nbsp;&nbsp;<BR>6详细表明了这种相互作用。图中第二列标注为&quot;int?&quot;,它指定该函数是否可以通&nbsp;&nbsp;<BR>过接受SIGINT信号而中断。第三栏指定了各个函数的超时设置(以秒为单位)。注&nbsp;&nbsp;<BR>意,当我们发送用户的PostScript程序到打印机时,没有超时设置。这是因为一个&nbsp;&nbsp;<BR>PostScript程序可能用任意长的时间来执行。函数get_page行中的&quot;我们的PostSc&nbsp;&nbsp;<BR>ript程序&quot;是指程序17.9,这个程序是用来记录当前页码的。&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;程序17.1列出了头文件lprps.h。该文件包含在所有的源文件中。该头文件包&nbsp;&nbsp;<BR>含了各个源程序所需的系统头文件,定义了全局变量和全局函数的原型。&nbsp;&nbsp;<BR>图17.6&nbsp;被主程序调用的函数&nbsp;&nbsp;<BR>_______________________________________________________________________&nbsp;&nbsp;<BR>________&nbsp;&nbsp;<BR>#include&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sys/types.h&gt;&nbsp;&nbsp;<BR>#include&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sys/time.h&gt;&nbsp;&nbsp;<BR>#include&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;errno.h&gt;&nbsp;&nbsp;<BR>#include&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;signal.h&gt;&nbsp;&nbsp;<BR>#include&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;syslog.h&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;since&nbsp;we're&nbsp;a&nbsp;daemon&nbsp;*/&nbsp;&nbsp;<BR>#include&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;ourhdr.h&quot;&nbsp;&nbsp;<BR>#define&nbsp;EXIT_SUCCESS&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;defined&nbsp;by&nbsp;BSD&nbsp;spooling&nbsp;system&nbsp;*/&nbsp;&nbsp;<BR>#define&nbsp;EXIT_REPRINT&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;<BR>#define&nbsp;EXIT_THROW_AWAY&nbsp;2&nbsp;&nbsp;<BR>#define&nbsp;DEF_DEVICE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;/dev/ttyb&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;defaults&nbsp;for&nbsp;debug&nbsp;mode&nbsp;*/&nbsp;&nbsp;<BR>#define&nbsp;DEF_BAUD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;B19200&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;modify&nbsp;following&nbsp;as&nbsp;a&nbsp;&nbsp;<BR>propriate&nbsp;*/&nbsp;&nbsp;<BR>#define&nbsp;MAILCMD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;mail&nbsp;-s&nbsp;\&quot;printer&nbsp;job\&quot;&nbsp;%s@%s&nbsp;&lt;&nbsp;%s&quot;&nbsp;&nbsp;<BR>#define&nbsp;OBSIZE&nbsp;&nbsp;1024&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;output&nbsp;buffer&nbsp;*/&nbsp;&nbsp;<BR>#define&nbsp;IBSIZE&nbsp;&nbsp;1024&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;input&nbsp;buffer&nbsp;*/&nbsp;&nbsp;<BR>#define&nbsp;MBSIZE&nbsp;&nbsp;1024&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;message&nbsp;buffer&nbsp;*/&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;declare&nbsp;global&nbsp;variables&nbsp;*/&nbsp;&nbsp;<BR>extern&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*loginname;&nbsp;&nbsp;<BR>extern&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*hostname;&nbsp;&nbsp;<BR>extern&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*acct_file;&nbsp;&nbsp;<BR>extern&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;eofc;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;PS&nbsp;end-of-file&nbsp;(004)&nbsp;*/&nbsp;&nbsp;<BR>extern&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;debug;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;true&nbsp;if&nbsp;interactive&nbsp;(not&nbsp;a&nbsp;daemon)&nbsp;*/&nbsp;&nbsp;<BR>extern&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in_job;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;true&nbsp;if&nbsp;sending&nbsp;user's&nbsp;PS&nbsp;job&nbsp;to&nbsp;printer&nbsp;*/&nbsp;&nbsp;<BR>extern&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;psfd;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;file&nbsp;descriptor&nbsp;for&nbsp;PostScript&nbsp;printer&nbsp;*/&nbsp;&nbsp;<BR>extern&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start_page;/*&nbsp;starting&nbsp;page#&nbsp;*/&nbsp;&nbsp;<BR>#include&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;syslog.h&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;since&nbsp;we're&nbsp;a&nbsp;daemon&nbsp;*/&nbsp;&nbsp;<BR>#include&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;ourhdr.h&quot;&nbsp;&nbsp;<BR>#define&nbsp;EXIT_SUCCESS&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;defined&nbsp;by&nbsp;BSD&nbsp;spooling&nbsp;system&nbsp;*/&nbsp;&nbsp;<BR>#define&nbsp;EXIT_REPRINT&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;<BR>#define&nbsp;EXIT_THROW_AWAY&nbsp;2&nbsp;&nbsp;<BR>#define&nbsp;DEF_DEVICE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;/dev/ttyb&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;defaults&nbsp;for&nbsp;debug&nbsp;mode&nbsp;*/&nbsp;&nbsp;<BR>#define&nbsp;DEF_BAUD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;B19200&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;modify&nbsp;following&nbsp;as&nbsp;a&nbsp;&nbsp;<BR>propriate&nbsp;*/&nbsp;&nbsp;<BR>#define&nbsp;MAILCMD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;mail&nbsp;-s&nbsp;\&quot;printer&nbsp;job\&quot;&nbsp;%s@%s&nbsp;&lt;&nbsp;%s&quot;&nbsp;&nbsp;<BR>#define&nbsp;OBSIZE&nbsp;&nbsp;1024&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;output&nbsp;buffer&nbsp;*/&nbsp;&nbsp;<BR>#define&nbsp;IBSIZE&nbsp;&nbsp;1024&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;input&nbsp;buffer&nbsp;*/&nbsp;&nbsp;<BR>#define&nbsp;MBSIZE&nbsp;&nbsp;1024&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;message&nbsp;buffer&nbsp;*/&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;declare&nbsp;global&nbsp;variables&nbsp;*/&nbsp;&nbsp;<BR>extern&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*loginname;&nbsp;&nbsp;<BR>extern&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*hostname;&nbsp;&nbsp;<BR>extern&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*acct_file;&nbsp;&nbsp;<BR>extern&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;eofc;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;PS&nbsp;end-of-file&nbsp;(004)&nbsp;*/&nbsp;&nbsp;<BR>extern&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;debug;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;true&nbsp;if&nbsp;interactive&nbsp;(not&nbsp;a&nbsp;daemon)&nbsp;*/&nbsp;&nbsp;<BR>extern&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in_job;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;true&nbsp;if&nbsp;sending&nbsp;user's&nbsp;PS&nbsp;job&nbsp;to&nbsp;printer&nbsp;*/&nbsp;&nbsp;<BR>extern&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;psfd;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;file&nbsp;descriptor&nbsp;for&nbsp;PostScript&nbsp;printer&nbsp;*/&nbsp;&nbsp;<BR>extern&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start_page;/*&nbsp;starting&nbsp;page#&nbsp;*/&nbsp;&nbsp;<BR>void&nbsp;&nbsp;&nbsp;&nbsp;msg_init(void);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;message.c&nbsp;*/&nbsp;&nbsp;<BR>void&nbsp;&nbsp;&nbsp;&nbsp;msg_char(int);&nbsp;&nbsp;<BR>void&nbsp;&nbsp;&nbsp;&nbsp;proc_msg(void);&nbsp;&nbsp;<BR>void&nbsp;&nbsp;&nbsp;&nbsp;out_char(int);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;output.c&nbsp;*/&nbsp;&nbsp;<BR>void&nbsp;&nbsp;&nbsp;&nbsp;get_page(int&nbsp;*);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;pagecount.c&nbsp;*/&nbsp;&nbsp;<BR>void&nbsp;&nbsp;&nbsp;&nbsp;send_file(void);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;sendfile.c&nbsp;*/&nbsp;&nbsp;<BR>void&nbsp;&nbsp;&nbsp;&nbsp;block_write(const&nbsp;char&nbsp;*,&nbsp;int);&nbsp;/*&nbsp;tty.c&nbsp;*/&nbsp;&nbsp;<BR>void&nbsp;&nbsp;&nbsp;&nbsp;tty_flush(void);&nbsp;&nbsp;<BR>void&nbsp;&nbsp;&nbsp;&nbsp;set_block(void);&nbsp;&nbsp;<BR>void&nbsp;&nbsp;&nbsp;&nbsp;set_nonblock(void);&nbsp;&nbsp;<BR>void&nbsp;&nbsp;&nbsp;&nbsp;tty_open(void);&nbsp;&nbsp;<BR>_______________________________________________________________________&nbsp;&nbsp;<BR>________&nbsp;&nbsp;<BR>程序17.1&nbsp;lprps.h头文件&nbsp;&nbsp;<BR>文件vars.c(程序17.2)定义了全局变量。&nbsp;&nbsp;<BR>程序17.3是main函数。因为此程序一般是作为精灵进程运行的,所以main函数调用&nbsp;&nbsp;<BR>log_open函数(见附录B)。我们不能将错误消息写到标准错误上-为此我们使用了&nbsp;&nbsp;<BR>13.4.2小节中描述的syslog。&nbsp;&nbsp;<BR>_______________________________________________________________________&nbsp;&nbsp;<BR>________&nbsp;&nbsp;<BR>#include&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;lprps.h&quot;&nbsp;&nbsp;<BR>char&nbsp;&nbsp;&nbsp;&nbsp;*loginname;&nbsp;&nbsp;<BR>char&nbsp;&nbsp;&nbsp;&nbsp;*hostname;&nbsp;&nbsp;<BR>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -