返回介绍

bermuda 工具

发布于 2024-10-10 23:21:25 字数 2246 浏览 0 评论 0 收藏 0

bermuda 和 geo2json 的工作方式极其相似,它们都逐行读取 GPS 数据,然后向标准输出发送数据。

但有两点不同:首先,bermuda 工具不会把所有数据都发送到标准输出中,而只发送那些落在百慕大三角内的数据;其次,bermuda 工具输出、输入数据的格式相同,都是用来保存 GPS 数据的 CSV 格式。

下面就是 bermuda 工具的伪代码:

我们来把伪代码变成 C 语言。

游泳池拼图

你需要补全 bermuda 程序的代码,取出游泳池中的碎片,把它们填到空白的横线处,有的碎片可能一次都用不到。

游泳池拼图解答

你取出游泳池中的碎片,补全了 bermuda 程序的代码,把它们填到了空白的横线处。

 

试驾

完成了 bermuda 工具,下面就和 geo2json 工具一起使用,看看能不能把百慕大三角以外的数据都过滤掉。

编译这两个工具,打开控制台,输入以下命令同时运行两个程序:

两个独立的程序用管道连接以后就可以看成一个程序,可以重定向它的标准输入和标准输出。

这里没有蠢问题问:为什么小工具要使用标准输入和标准输出?答:有了它们,就可以轻易用管道将小工具们串连起来。问:为什么要把它们串连在一起?答:小工具只能解决一个小技术问题,例如转换数据的格式,而无法解决整个问题。只有把它们组合在一起,才能解决大问题。问:到底什么是管道?答:不同操作系统实现管道的方法不同,可能用存储器,也可能用临时文件。我们只要知道它从一端接收数据,在另一端发送数据就行了。问:如果两个程序用管道相连,第二个程序要不要等第一个程序执行完后才能开始运行?答:不需要,两个程序可以同时运行,第一个程序一发出数据,第二个程序马上就可以处理。问:为什么小工具要使用文本?答:文本是一种开放格式,程序员可以用文本编辑器来查看小工具的输出,并理解里面的内容,相比之下,二进制格式就难懂多了。问:我能用管道连接多个程序吗?答:能啊,只要在每个程序前加上一个|就行了,一连串相连的进程就叫流水线(pipeline)。问:当我用管道连接多个进程时,< 与 > 分别重定向哪个进程的标准输入、哪个进程的标准输出?答: < 会把文件内容发送到流水线中第一个进程的标准输入, > 会捕获流水线中最后一个进程的标准输出。问:当我在命令行中运行 bermuda 和 geo2json 程序时,它们外面的括号是必需的吗?答:是的,这对括号保证了数据文件由 bermuda 程序的标准输入来读取。

 

要点

如果想完成一个不同的任务,应该另外写一个小工具。
小工具应该使用标准输入和标准输出。
小工具通常读写文本数据。
可以用管道连接一个进程的标准输出和另一个进程的标准输入。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文