加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

实现“更多”Unix实用程序命令

发布时间:2020-12-15 21:04:34 所属栏目:安全 来源:网络整理
导读:我正在尝试实施更多命令.我想知道如果有管道我怎么能理解.例如,如果我从 shell键入 cat file1 file2 | more 我怎么能处理更多的内部执行? 并且更多可用作开源的实现? 实际上我无法读取stdin.我已经管理了更多的file.txt而不是cat文件更多.. 我想我应该首先
我正在尝试实施更多命令.我想知道如果有管道我怎么能理解.例如,如果我从 shell键入

cat file1 file2 | more

我怎么能处理更多的内部执行?

并且更多可用作开源的实现?

实际上我无法读取stdin.我已经管理了更多的file.txt而不是cat文件更多..

我想我应该首先从用户读取并放一个缓冲区而不是打印缓冲区.我的代码包含:

if(argc == 1)
{
  fgets(line,255,0);
   printf("%s",line);
}

但它给出了错误.

解决方法

语法越多

more [options] [file_name]

如果您不提供文件名,则more命令从stdin获取输入;您可以使用管道提供此输入(通过stdin),例如:

cat file.txt | more

这会将cat命令的输出发送给更多.这和做的一样:

more file.txt

你不需要特别知道是否有管道;你只需要检查文件名是否作为参数传递给更多.如果是,则输入被视为文件的内容.如果不是,则认为输入源自stdin.

至于源代码,一些谷歌搜索将带你走很长的路.以下是FreeBSD的一些旧源代码:

http://svnweb.freebsd.org/base/stable/2.0.5/usr.bin/more/

或者来自Ubuntu存储库的更多来源:

http://bazaar.launchpad.net/~vcs-imports/util-linux-ng/trunk/files/head:/text-utils/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读