讲解的太形象了! 在 2012年6月12日星期二,chenchacha <1241824...@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 mailing list ubuntu-zh@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-zh