首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

FileDescriptor文件描述符 标准输入输出错误 文件描述符

这个概念在类Unix系统叫做文件描述符, linux把所有东西都被看成是文件,比如文件、目录、进程、网络socket、各种硬件设备等 这个概念在Windows下 称之为句柄, 句柄是Windows下各种对象的标识符...具体的值是 0  1   2  ,这是操作系统层面的描述 在linux 中, 每个进程启动时都打开3个文件(linux 中一切都是文件):  * 标准输入  0 * 标准输出  1 *...标准错误  2 三个描述符,通过调用私有方法 standardStream进行创建初始化 创建一个FileDescriptor 并且,设置他的handle值 内部的set...(fd)是一个本地方法 说白了,就是通过调用本地方法,获得操作系统对标准输入/输出/错误的三个文件描述符 ?...  都是 final  static的 标准的输入输出是共享,但是java是多线程的 因此它们必须受到特别的处理,在系统初始化完成之前,线程严禁使用这几个特殊对象; 又因为这些对象都是静态的

1.7K20
您找到你想要的搜索结果了吗?
是的
没有找到

Linux学习 - 管道、标准输入输出

Linux下的标准输入、输出、重定向、管道 在Linux系统中,有4个特殊的符号,’, ‘|’, ‘-‘,在我们处理输入和输出时存在重要但具有迷惑性的作用。...默认Linux的命令的结果都是输出标准输出,错误信息 (比如命令未找到或文件格式识别错误等) 输出标准错误,而标准输出标准错误默认都会显示到屏幕上。...>表示重定向标准输出,> filename就是把标准输出存储到文件filename里面。标准错误还是会显示在屏幕上。 2 >&1 表示把标准错误重定向到标准输出。...Linux终端用2表示标准错误,1表示标准输出。 - (短横线):表示标准输入,一般用于1个程序需要多个输入的时候。 <标准输入,后面可以跟可以产生输出的命令,一般用于1个程序需要多个输入的时候。...unexisted_command 运行这个脚本 # 标准输出标准错误默认都会显示到屏幕上 ct@ehbio:~$ bash stdout_error.sh I am std output stdout_error.sh

4.1K60

Linux标准错误输出重定向

Linux下” >/dev/null 2>&1 “相关知识说明 在学习Linux的过程中,常会看到一些终端命令或者程序中有”>/dev/null 2>&1 “出现,由于已经遇到了好几次了,为了理解清楚,...(stderr) 1)command : 表示shell命令或者为一个可执行程序 2)> : 表示重定向到哪里 3)/dev/null : 表示linux的空设备文件 4)2 : 表示标准错误输出...5)&1 : &表示等同于的意思,2>&1,表示2的输出重定向等于于1 6)& : 表示后台执行,即这条指令执行在后台运行 1>/dev/null 表示标准输出重定向到空设备文件,也就是不输出任何信息到终端...2>&1 表示标准错误输出重定向等同于标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。...这条命令的意思就是在后台执行这个程序,并将错误输出2重定向到标准输出1,然后将标准输出1全部放到/dev/null文件,也就是清空.

3K100

linux如何将输出重定向到文件和标准输出

调用ls -al > rumenz.txt会将来自该命令的任何输出重定向到指定的文件,有没有办法将输出重定向到文件并将其显示在标准输出上?...> ls -al > rumenz.txt 上面的命令执行后,数据被输入到rumenz.txt文件,屏幕没有任何输出,如果既想输入到文件又想输入到屏幕,请使用如下的方法....使用tee 如果您只关心标准输出 > ls -al | tee rumenz.txt 如果要包含 stderr,请执行以下操作,会覆盖之前的数据 > ls -al 2>&1 | tee rumenz.txt...2>&1将通道 2(标准错误/标准错误)重定向到通道 1(标准输出/标准输出),这样两者都被写入为标准输出。...它也被定向到tee命令的给定输出文件。 如果要包含 stderr,请执行以下操作, 追加模式 > ls -al 2>&1 | tee -a rumenz.txt

5.1K20

将make的输出标准输出标准错误输出)重定向到文件 _

方式 描述符 含义 stdin 0 标准输入 stdout 1 标准输出 stderr 2 标准错误输出 1.想要把make输出的全部信息,输出到某个文件中 最常见的办法就是:make xxx > build_output.txt...2.只需要把make输出中的错误(及警告)信息输出到文件中ing,可以用: make xxx 2> build_output.txt 相应地,由于1=stdout没有变,还是屏幕,所以,那些命令执行时候输出的正常信息...,还是会输出到屏幕上,你还是可以在屏幕上看到的。...相应地,由于2=stderr没有变,还是屏幕,所以,那些命令执行时候输出的错误信息,还是会输出到屏幕上,你还是可以在屏幕上看到的。...,正常信息和错误信息,都输出到对应文件中了。

4.4K20

分享:Linux标准输入输出和重定向

标准输入与输出 我们知道,执行一个shell命令行时通常会自动打开三个标准文件,即标准输入文件(stdin),通常对应终端的键盘;标准输出文件(stdout)和标准错误输出文件(stderr),这两个文件都对应终端的屏幕...进程将从标准输入文件中得到输入数据,将正常输出数据输出标准输出文件,而将错误信息送到标准错误文件中。...但是,如果cat的命令行中没有参数,它就会从标准输入中读取数据,并将其送到标准输出。...为了解决上述问题,Linux系统为输入、输出的传送引入了另外两种机制,即输入/输出重定向和管道。 输入重定向 输入重定向是指把命令(或可执行程序)的标准输入重定向到指定的文件中。...管 道 将一个程序或命令的输出作为另一个程序或命令的输入,有两种方法,一种是通过一个临时文件将两个命令或程序结合在一起,例如上个例子中的/tmp/dir文件将ls和wc命令联在一起;另一种是Linux

2.9K30

09_Linux基础-SHELL-标准输入与标准输出-重定向-管道

SHELL-标准输入与标准输出学习内容:重定向和文件目录高级操作知识要点输入输出重定向管道及相关配套命令 数据提取及过滤文件差异对比和补丁生成及打补丁标准输入和标准输出知识点1 标准输入和标准输出---...------------------------输入输出及重定向每个进程基本都会打开三个文件描述符0: 标准输入(从键盘)1: 标准输出输出到屏幕)2: 标准错误输出输出到屏幕)类型设备文件文件描述符...utm_source=blogxgwz9每个进程基本都会打开三个文件描述符0:标准输入(从键盘、语音、人脸识别……)1:标准输出输出到屏幕)2:标准错误输入(输出到屏幕)---------------...------------文件描述符:fd 就是每个进程打开的文件文件描述符知识点1.1 文件描述符文件描述符linux内核给每个进程都创造一个文件描述符,这个表里记载了这个进程所打开的所有文件,为了方便进程知道自己打开了哪些文件呢...file.txtxxx脚本运行 标准错误输出标准正确输出 (显示)知识点3.3 脚本运行 标准错误输出标准正确输出 (显示)脚本一行一行 从上到下执行root@sanchuang-linux redirect

2K10

Linux如何在Bash中将标准错误stderr重定向到stdout标准输出

将命令的输出重定向到文件或将其通过管道传递到另一个命令时,你可能会注意到错误消息已打印在屏幕上。 在Bash和其他Linux Shell中,执行程序时,它使用三个标准I/O流。...每个流由一个数字文件描述符表示: 0-stdin,标准输入流。 1 -stdout,标准输出流。 2 -stderr,标准错误流。 文件描述符只是代表打开文件的数字。...程序输出进入标准输出流,错误消息进入标准错误流。默认情况下,输入流和错误流都打印在屏幕上。 重定向标准输出流 重定向是一种从程序捕获输出并将其作为输入发送到另一个程序或文件的方法。...流可以使用n>运算符重定向,其中n是文件描述符。 省略n时,默认为标准输出流1。例如,以下两个命令是相同的;两者都会将命令输出(stdout)重定向到文件。...要将stderr重定向到stdout并将错误消息发送到与标准输出相同的文件,请使用以下命令: command > file 2>&1 > file将stdout重定向到file,2>&1将stderr重定向到

3.2K20

python标准输出 标准错误 重定向

1、sys.stdin  为文件对象, 当对文件对象做循环的时候,返回的为行数 2、ls > log 2>&1  标准输出标准错误都输出到log,&> log也可以,但是会有版本限制 3、print...print 是调用一个对象的write方法,通常是stdout print会先进行格式转换 print 123456   == sys.stdout.write(str(123456)+'\n') 4、标准输出不可以为...int类型, sys.stdout.write(1)  不可以 5、shell中& 单独为后台执行, >& 为管道,重定向到管道 >log 1>&2  把标准输出输出标准错误   一同显示出来,而log...中没有内容 >log  2>&1 把标准错误输出标准输出, 则不会打印输出,而log中会有内容 python 中为: print >> sys.stderr,"%s is not exists" %...u 禁止buffer输出) 6、locals()  以字典的形式返回参数值   7、sys.argv 以列表的形式收集参数

2.7K20

Linux编程(文件描述符

Linux编程世界中,不可能没听过文件描述符这个概念,我们操纵任何设备的时候,几乎都要通过它来达成的,它究竟是何方神圣呢?随我描述符科学家来一探究竟。...首先,我们在Linux下打开文件用的都是如下代码: int fd = open(... ...); 当然有同学可能会说,有时也可以用fopen(),但是fopen()只是标准IO对系统IO的封装,归根结底还是使用...很多人就想当然地以为打开嘛,就跟在windows下双击一个文件,或者双击一个文件夹一样,就是一个动作而已,其实不然,常说的打开一个文件实际上最重要的是获取这个文件的描述符描述符是用来表征这个文件的代表物...内核空间中有一堆数据结构表达一个文件的属性信息,但是用户空间看不见,只看见一个代表了这些信息的整数i,通常我们称之为文件描述符,对文件的读写和ioctl操作都是通过这个东东来达到的呢!

1.7K20

Linux 文件描述符详解

Overview 了解Linux怎样处理输入和输出是非常重要的。一旦我们了解其原理以后,我们就可以正确熟练地使用脚本把内容输出到正确的位置。同样我们也可以更好地理解输入重定向和输出重定向。...Linux标准文件描述符 文件描述符 缩写 描述 0 STDIN 标准输入 1 STDOUT 标准输出 2 STDERR 标准错误输出 ---- Linux系统将所有设备都当作文件来处理,而Linux...其实我们可以想象我们电脑的显示器和键盘在Linux系统中都被看作是文件,而它们都有相应的文件描述符与之对应。 其实我们与计算机之间的交互是我可以输入一些指令之后它给我一些输出。...标准错误输出标准输出的区别是,它在命令出错情况下的输出。这没有什么太大的不同,我们也可以把它的输出修改到任何我们想要的位置。...只不过我们需要把上面标准输出的1改成2,命令如下: exec 2> xlinsist1 当然,除了0, 1,2以外,我们可以分配自己的文件描述符

2.4K30

Python重定向标准输入、标准输出和标

UNIX用户已经对标准输入、标准输出标准错误的概念熟悉了。这一节是为其它不熟悉的人准备的。...标准输出标准错误(通常缩写为 stdout 和 stderr)是建立在每个UNIX系统内的管道(pipe)。...将我们新打开的日志文件的文件对象赋给 stderr 重定向标准错误。 引发一个异常。从屏幕输出上我们可以注意到这样没有在屏幕上打印出任何东西。所以正常跟踪信息已经写进 error.log。...第一个程序简单地输出标准输出(本身不需要任何特别的重定义,只是执行正常的 print 什么的),同时下个程序从标准输入读入,操作系统会小心地将一个程序的输出连接到下一个程序的输入。 例 5.35....这样会打印 binary.xml 的内容,但是“|”字符,叫做管道符,表示输出内容不会打印到屏幕上。相反,它们成为下个命令(在本例中调用我们的Python脚本)的标准输入。

3.8K10
领券