07 2008 档案
摘要:终端输出使用termios结构,我们可以控制键盘输入,但是如果在显示在屏幕上的输出上可以进行同样级别的控制也许会更好。在我们本章的开始,我们使用printf来向屏幕输出字符,但是却没有办法将输出定位在屏幕上的某个特定位置上。终端类型许多Unix系统使用终端,尽管在今天的许多情况下,终端也许实际上是一个运行终端程序的PC。从历史上来说,不同的生产产商提供了大量的硬件终端。尽管他们都是使用转义序列(以转义字符开始的字符串)来提供对光标与属性的控制,例如粗体与闪烁等,但是他们并没有以标准的方式来提供这些特性。某些老的终端同时还具有不同的滚动功能,当发送backspace滚动条也许会消失。硬件终端的多
阅读全文
摘要:终端驱动器与通用终端接口有时程序需要更好的控制终端而不是使用简单的文件操作来达到。Linux提供了一个可以允许我们控制终端驱动器的接口集合,从而可以使得我们更好的控制终端的输入与输出处理过程。概览正如下图所示,我们可以通过一个与用来进行读写操作相分离的函数调用集合来控制终端。这使得数据接口更为清晰,同时又能更好的控制终端的行为。这并不说是说终端I/O接口是清晰的,而是可以处理各种不同的硬件。在Linux术语中,控制接口设置一个"行规程"(line discipline),从而使得程序在指定终端驱动器的行为方面更为灵活。我们可以控制的主要特征包括:行编辑:决定是否允许编辑使用
阅读全文
摘要:在这章,我们将会考虑将我们第2章的程序进行改进。也许最明显的失败就是用户界面;他的功能也并不优雅。在这里,我们将会讨论如何更好的控制用户终端;也就说是键盘输入与屏幕输出。除了这些,我们还会了解我们编写的程序如何由用户处读取输入,即使是在输入重定向的情况下,以及确保输出到屏幕的正确位置。尽管改进的CD数据程序会直到第7章我们才会看到,但是在这一章我们会做许多基础工作。第6章会关注于curses,这并不是某些远古的咒语,而提供一个代码高层来控制终端屏幕显示的函数库。同时,我们会通过介绍一些Linux和Unix的哲学思想以及终端输入输出的概念来检测一些早期Unix设置的想法。这里所提供的一些底层访问
阅读全文
摘要:资源与限制 运行在Linux系统上的程序是有资源限制的。这些也许是硬件引起的限制(例如内存),也许由系统策略引起的限制(例如,允许 的CPU时间),或者是实现的限制(例如,整数的尺寸或是文件名允许的最大字符个数)。Unix规范定义了一些可以由程序确定的限制。在第7章我们会进行 更为深入的讨论。 limits.h头文件定义了许多表示操作系统限制的常量。他们包括: 限制常量 用途 NAME_MAX 文件名中的最大字符个数 CHAR_BIT 一个字符值的位数 CHAR_MAX 最大字符值 INT_MAX ...
阅读全文
摘要:It's not the Gates, it's the barsBy Richard Stallman Founder, Free Software FoundationTo pay so much attention to Bill Gates' retirement is missing the point. What really matters is not Gates, nor Microsoft, but the unethical system of restrictions that Microsoft, like many other softwar
阅读全文