LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1278|回复: 2

cat filename与cat < filename在进程处理上有什么区别?

[复制链接]
发表于 2004-12-27 07:55:24 | 显示全部楼层 |阅读模式
当 cat filename ,cat将文件以标准输入反馈到标准输出.
当 cat < filename , cat将指定文件中信息作为标准输出


这两者在进程处理上有什么区别吗? 如果有,麻烦解释一下好吗,多谢!
发表于 2004-12-27 09:46:30 | 显示全部楼层
Post by andrewchou
当 cat filename ,cat将文件以标准输入反馈到标准输出.
当 cat < filename , cat将指定文件中信息作为标准输出


这两者在进程处理上有什么区别吗? 如果有,麻烦解释一下好吗,多谢!


有区别,虽然两者的效果是一样的:
cat filename----打开一个文件描述符描述filename文件,此文件描述符大于2,然后将内容写到标准输出(即文件描述符1)
cat  <filename----暂时关闭默认标准输入0(终端),再打开filename,此时文件描述符0被打开用于描述filename文件,将内容写到标准输出(即文件描述符1),之后再关闭0文件描述符,再次打开0描述符作为终端的描述(即恢复到标准输入)

兄弟上面的说法有点怪怪的,可能字眼上要稍有些斟酌修改会比较严谨一点
发表于 2004-12-27 12:55:38 | 显示全部楼层
cat 命令所需要的参数是文件,如果没有此参数,会从标准输入读取
第一种,即是从文件中读入数据,第二种从标准输入中读入,只不过标准输入被shell 重定向了.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表