[Ubuntu-zh] 请问一个linux标准输入标准输出问题
杜宏羽
dongfengweixiao在gmail.com
星期二 六月 12 01:09:50 UTC 2012
讲解的太形象了!
在 2012年6月12日星期二,chenchacha <1241824064在qq.com> 写道:
> 于 2012年06月11日 18:47, 依云 写道:
>
>> On Mon, Jun 11, 2012 at 05:44:14PM +0800, yeji wrote:
>>
>>> 在学习linux的时候,我遇到以下几个问题不懂,**请大家指点迷津
>>> 1、标准输入、输出缺省情况下对应键盘,显示器,**那么标准错误缺省情况下,错
>>> 误信息是输出到什么地方?
>>> 2、在默认的情况下,**unix为每个进程提供3个预定义的文件描述符,默认的文件描
>>> 述符是0代表标准输入、1代表标准输出、2代表标准错误。那么 向语句
>>> calculate
>>> 8>results还是标准输出吗?results是文件名。**如果不是的话,那么如何理解
>>> sort1>results是标准输出,这里也重定
>>> 向了啊,不是缺省的显示屏,不是的原因
>>> 是什么?如果是的话,那么如何理解1代表标准输出?**这里的标准输入与标准输
>>> 出、标准错误与文件描述符有什么 联系?
>>> 谢谢
>>>
>>
>> 你的邮件在我这里排版有点乱,不过我想我大约知道了你的问题。
>>
>> 2、在默认的情况下,**unix为每个进程提供3个预定义的文件描述符,默认的文件描
>>> 述符是0代表标准输入、1代表标准输出、2代表标准错误。那么 向语句
>>>
>>
>> 我不喜欢「代表」这个词。在这里,我更愿意使用「称为」。**而你举例中的文件描
>> 述符 8 是没有名字的。那个 shell 语法只是为 calculate 进程以写方式打开了
>> 一个文件描述符为 8 的文件而已。
>>
>> 还有,我觉得 0-2 这三个文件描述符不是 Unix 为进程「提供」的,而是继承而
>> 来的(启动或者登录过程中某进程打开的)。**这三个文件描述符的功能也是约定的。
>>
> 不知道我理解的对不对,unix系统下所谓的标准输入,**标准输出,标准错误,也就 是编程的时候用的0,1,2三个文件描述符,对应的是/**dev下的
> stdin,stdout,stderr这三个文件。
> 而显示器,键盘之类的东西算是输出设备和输入设备了。
>
> “标准XX”和“设备文件”是两码事,两者扯上关系,**是系统在后面“上下其手”,做了 些后台潜规则,牵红线之类的好事的。
>
> 系统牵线指定”标准XX”,依据的是终端。
>
> 比如说如果是电脑登陆,由于终端的输出是显示器,输入是键盘,**那么标准输出自 然”缺省“指到显示器,标准输入也”缺省“指到键盘;**但如果是串口或者以太网口登
> 陆,那这三个”标准“就应该被”缺省“给串口或者网口了。
>
> 这个可以验证一下,我在桌面上打开一个终端窗口,用ls -l命令来查看三个标准文件:
> $ ls /dev/stdin -l
> lrwxrwxrwx. 1 root root 15 6月 12 2012 /dev/stdin -> /proc/self/fd/0
> $ ls /dev/stdout -l
> lrwxrwxrwx. 1 root root 15 6月 12 2012 /dev/stdout -> /proc/self/fd/1
> $ ls /dev/stderr -l
> lrwxrwxrwx. 1 root root 15 6月 12 2012 /dev/stderr -> /proc/self/fd/2
> 可以看到是三个连接文件,对应/proc/self/**fd目录下的三个文件,然后再用ls -l 查看目录:
> $ ls /proc/self/fd/0 -l
> lrwx------. 1 chen chen 64 6月 12 01:32 /proc/self/fd/0 -> /dev/pts/1
> $ ls /proc/self/fd/1 -l
> lrwx------. 1 chen chen 64 6月 12 01:32 /proc/self/fd/1 -> /dev/pts/1
> $ ls /proc/self/fd/2 -l
> lrwx------. 1 chen chen 64 6月 12 01:32 /proc/self/fd/2 -> /dev/pts/1
> /dev/pts/1是对应我刚才建立的终端窗口,**可见这三位都被送到我在桌面上开的终 端窗口去了。然后这三娃该怎么分配,就看终端的了。
>
>
>
> --
> ubuntu-zh mailing list
> ubuntu-zh在lists.ubuntu.com
> https://lists.ubuntu.com/**mailman/listinfo/ubuntu-zh<https://lists.ubuntu.com/mailman/listinfo/ubuntu-zh>
>
-------------- 下一部分 --------------
一个HTML附件被移除...
URL: <https://lists.ubuntu.com/archives/ubuntu-zh/attachments/20120612/503896a8/attachment.html>
关于邮件列表 ubuntu-zh 的更多信息