2013-12-19 14 views
0

在本书的“Lisp的小件”的开幕页,有一段是这样的:“UNIX字节流的组成”是什么意思?

基于“功能”的理念,已经成熟了 几个世纪以来的想法数学研究,应用语言在计算中无所不在;它们以各种形式出现,例如Un * x字节流的 组成,Emacs 编辑器的扩展语言以及其他脚本语言。

任何人都可以详细介绍一下“unix字节流的组成”?这是什么意思?以及它如何与应用/功能编程相关?

感谢,

/熊先生

回答

1

我的猜测是,这是对像linux下pipe的参考。

cal | wc 

符号|它就是调用2个应用程序之间的管道,pipe是由内核提供的,所以你可以使用其中的应用程序都在使用这种内核API的书面管道的特征。

在这个例子中cal仅仅是打印日历工具,wc是计算在你传递给它的输入字,行和列,在这种情况下,实用的输入管道calwc结果这使得事情变得更加简单,因为它更实用,您只关心每个应用程序的功能,而不关心例如参数的名称或分配临时文件以存储输入/输出的位置在之间。

没有管,你应该这样做

cal > temp.txt 
wc temp.txt 
rm temp.xt 

获得几乎相同的信息。此外,这第二个解决方案可能会产生问题,例如如果temp.txt已经存在?遵循什么样的原则,你会告诉脚本为你的临时文件选择一个名字?如果另一个进程在两个调用calwc之间修改了您的文件,该怎么办?

+0

谢谢。现在对我来说有点清楚了......单个Unix实用程序被认为是独立/正交的主要功能,而pipe是将它们“粘合”(合成)在一起以在基元之上构建图层的方式......“cal | wc “可以在功能上被视为”wc(cal())“... – bruin