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

Linux】基础IO_文件描述与重定向

环境:centos7.6,腾讯云服务器 Linux文章都放在了专栏:【Linux】欢迎支持订阅 相关文章推荐: 【Linux】冯.诺依曼体系结构与操作系统 【C/进阶】如何对文件进行读写(含二进制...【Linux】基础IO_文件操作 前言 在前文中学习了open函数,我们知道open函数的返回值就是文件描述,本章将对文件描述进行详细讲解。 文件描述 文件描述是什么?...我们再来看如下现象: 为什么文件描述是从3开始的呢? Linux系统下进程会默认打开三个文件,即标准输入、标准输出、标准错误,分别对应文件描述0 1 2。...我们可以来通过简单的代码进行验证我们的猜测: 重定向的原理 重定向定义 了解文件描述的特点后,我们知道一个进程会默认打开三个文件,那么假如我们在打开新文件之前,将1号文件描述对应的文件(即标准输出...所以假如我们要将1号文件描述的指向的文件修改为fd对应的文件,应该这样来写:dup2(fd,1),这就是输出重定向,当然输入重定向就是:dup2(fd,0)。

25830

linux17-详说linux的重定向与文件描述

前言 上一节中 [[16-linux程序后台执行指西]],我们提到了,重定向操作,对于后台执行命令来说,很有用,这一节来详细说说。...部分内容参考:Linux 基础入门(新版) - 实验楼[1] 1-linux的输入与输出 Linux 默认提供了三个特殊设备,用于终端的显示和输出,分别为stdin(标准输入,对应于你在终端的输入),stdout...该重定向无需对命令指定文件,但需要指定一个文本标记来划分输入数据的开始与结尾,使用内联输入重定向,shell 会使用次提示来提示输入数据。符号为<<。注意开始和结尾都使用了一致的文本标记test。...shell,或取消exec的重定向 $ ls $ exit $ cat somefile 4-自定义文件描述 在 Shell 中有 9 个文件描述。...在 Linux 中有一个被称为“黑洞”的设备文件,所有导入它的数据都将被“吞噬”—— /dev/null 。

1.6K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Linux】文件操作文件描述定向缓冲区

    1、什么是文件描述 2、文件描述的分配规则 四、重定向 1、什么是重定向 2、dup2 系统调用 3、三种重定向的实现 五、Linux 下一切皆文件 六、缓冲区 1、为什么要有缓冲区 2、缓冲区的刷新策略...2、文件描述的分配规则 现在我们知道了文件描述是什么,那么文件描述是如何进行分配的呢?...像这样,本来应该往一个文件中写入数据,但是却写入到另一个文件中去了,这种特性就叫做重定向;而重定向的本质是上层使用的 fd 不变,在内核中更改 fd 指向的 file 对象,即更改文件描述表数组中 fd...3、三种重定向的实现 Linux 中主要有三种主要的重定向 – 输入重定向、输出重定向和追加重定向;在 Linux 命令行中它们分别使用 、>> 表示,如下: 输出重定向 输入重定向我们上面已经实现了...)写入到stdout中 } close(fd); return 0; } ---- 五、Linux 下一切皆文件 在刚开始学习 Linux 的时候,我们就说 Linux 下一切皆文件

    3.9K00

    Linux定向

    表示把右边内容先清空,然后再把左边内容写入到右边>>:有俩符号时,表示右边内容先不进行任何操作,然后把左边内容追加到右边最后一行注:常用清空文件内容操作:> 文件名称或cat /dev/null > 文件名称重定向...1、 标准(追加)输出重定向,用数字1表示 ,符号为>或1>,数据流向朝右,接收命令正常执行输出eg:[root@money ~]# ls /opt > 2.txt ##把ls正确输出的内容通过重定向写入...2.txt [root@money ~]# cat 2.txt rar rarlinux-x64-612.tar.gz2、 标准错误(追加)输出重定向,用数字2表示,符号为2>,接收命令的执行报错...> 2.txt ##把las命令执行错误的内容输出到2.txt中 [root@money ~]# cat 2.txt -bash: las: 未找到命令3、 标准输入(追加)重定向...[root@money ~]# cat 1.txt 123456789 [root@money ~]# tr '1-9' 'A-I' < 1.txt ##利用标准输入重定向

    2.6K30

    linux 管道符重定向

    输入重定向来讲,用到的符号及其作用如表3-1所示。...表3-1                                         输入重定向中用到的符号及其作用符号作用命令 文件2将文件1作为命令的标准输入并将标准输出到文件2对于输出重定向来讲,用到的符号及其作用如表3-2所示。...表3-2                                         输出重定向中用到的符号及其作用符号作用命令 > 文件将标准输出重定向到一个文件中(清空原有文件的数据)命令 2>...文件将错误输出重定向到一个文件中(清空原有文件的数据)命令 >> 文件将标准输出重定向到一个文件中(追加到原有内容的后面)命令 2>> 文件将错误输出重定向到一个文件中(追加到原有内容的后面)命令 >

    3.3K10

    Linux中Shell重定向

    在shell脚本中,默认情况下,总是有三个文件处于打开状态,标准输入(键盘输入)、标准输出(输出到屏幕)、标准错误(也是输出到屏幕),它们分别对应的文件描述是 0,1,2 。...& 是一个描述,如果1或2前不加&,会被当成一个普通文件。...> 默认为标准输出重定向,与 1> 相同 1>&2 意思是把标准输出重定向到标准错误. 2>&1 意思是把标准错误输出重定向到标准输出。...access 1.txt: No such file or directory rumenz.txt > out.log将标准输出重定向到文件,但是2>&1将错误输出重定向到标准输出,所以out.log...通常用于丢弃不需要的数据输出, 或者用于输入流的空文件 > rm -f $(find / -name rumenz) &> /dev/null 原文链接:https://rumenz.com/rumenbiji/linux-shell-redirect.html

    1.6K10

    Linux中的重定向

    标准输入输出 三种I/O设备 处理数据需要输入输出,在linux中一切皆文件,所操作的输入输出都认为是一个文件,而此文件表现为每打开一个文件系统会分配一个数字,这个数字代表一个文件,这个数字叫文件描述...FileDescriptor Linux中给程序提供的三种I/O设备 标准输入STDIN 0 默认接受来自终端窗口的输入 标准输出STDOUT 1 默认输出到终端窗口...默认标准输入的信息输出是到本地窗口,如何将输入信息重定向至其他文件?...如果将输入信息输出至其他文件可以通过重定向方法来实现。...标准输出和错误重定向 标准输出和标准错误可以被重定向到指定文件,而非默认的当前终端 格式: 命令 操作符号 文件名 支持的操作: 1>或> | 把STDOUT重定向到文件 [root@centos7

    2.6K00

    Linux中Shell重定向

    在shell脚本中,默认情况下,总是有三个文件处于打开状态,标准输入(键盘输入)、标准输出(输出到屏幕)、标准错误(也是输出到屏幕),它们分别对应的文件描述是 0,1,2 。...& 是一个描述,如果1或2前不加&,会被当成一个普通文件。...> 默认为标准输出重定向,与 1> 相同 1>&2 意思是把标准输出重定向到标准错误. 2>&1 意思是把标准错误输出重定向到标准输出。...access 1.txt: No such file or directory rumenz.txt > out.log将标准输出重定向到文件,但是2>&1将错误输出重定向到标准输出,所以out.log...通常用于丢弃不需要的数据输出, 或者用于输入流的空文件 > rm -f $(find / -name rumenz) &> /dev/null 原文链接:https://rumenz.com/rumenbiji/linux-shell-redirect.html

    2.3K00

    Linux中Shell重定向

    在shell脚本中,默认情况下,总是有三个文件处于打开状态,标准输入(键盘输入)、标准输出(输出到屏幕)、标准错误(也是输出到屏幕),它们分别对应的文件描述是 0,1,2 。...& 是一个描述,如果1或2前不加&,会被当成一个普通文件。...> 默认为标准输出重定向,与 1> 相同 1>&2 意思是把标准输出重定向到标准错误. 2>&1 意思是把标准错误输出重定向到标准输出。...access 1.txt: No such file or directory rumenz.txt > out.log将标准输出重定向到文件,但是2>&1将错误输出重定向到标准输出,所以out.log...通常用于丢弃不需要的数据输出, 或者用于输入流的空文件 > rm -f $(find / -name rumenz) &> /dev/null 原文链接:https://rumenz.com/rumenbiji/linux-shell-redirect.html

    1.7K20

    Linux】开始了解重定向

    – 史铁生 《我与地坛》 开始了解重定向 1 前言 2 重定向与缓冲区 2.1 文件描述分配规则 2.2 重定向的现象 2.3 重定向的理解 2.4 缓冲区的理解 3 进程与重定向 Thanks♪...1 前言 上一篇文章我们复习了C文件IO相关操作,了解了linux下的文件系统调用(open write read ),认识了文件描述fd值,今天我们来学习重定向和缓冲区,这个缓冲区之前遇到过很多次,...2 重定向与缓冲区 2.1 文件描述分配规则 接下来我们来了解重定向!...(0) --> 新创建的文件的文件描述就成了 0 这样我们大致可以总结出来一个结论: 文件描述的分配规则:进程会查自己的文件描述表,分配最小的并且没有被使用过的 fd 2.2 重定向的现象 刚才我们看到了文件描述的分配规则...这种技术就叫做 重定向,也就是把本应该打印到显示器的内容打印到了一个其他文件中。 其本质就是在内核中改变文件描述表特定下标的内容,和上层无关! 可是如果不加入fflush 呢???

    8710

    详解Linux定向用法

    学会使用重定向,不仅可以让你与计算机更好地交互,还可以提高你的工作效率,因此,请让良许为你讲解 Linux 系统中重定向的常见用法: Linux 中的数据流 谈到 Linux 的重定向,就不得不提以下这...你可以在 /dev 目录下看到它们: $ ls /dev/std* /dev/stderr /dev/stdin /dev/stdout 重定向输出 在 Linux 系统中,使用 > 字符表示重定向输出...Here-doc 将输入的文本块重定向至标准输入流,直至遇到特殊的文件结束标记为止(文件结束标记可以是任意的唯一的字符串,但大部分人都默认使用 EOF)。...例如,将错误信息重定向到名为 output.log 的文件中: $ ls /nope 2> output.log 重定向数据至 /dev/null 就像标准输入、标准输出以及标准错误一样,在 Linux...到此这篇关于详解Linux定向用法的文章就介绍到这了,更多相关Linux定向用法内容请搜索ZaLou.Cn以前的文章或继续浏览下面的相关文章希望大家以后多多支持ZaLou.Cn!

    2.2K42

    linux输出重定向操作>&

    linux输出重定向操作>& 作者:matrix 被围观: 3,396 次 发布时间:2019-10-19 分类:command Linux | 一条评论 » 这是一个创建于 1048 天前的主题...类型 文件描述 默认情况 对应文件句柄位置 标准输入(standard input) 0 从键盘获得输入 /proc/self/fd/0 标准输出(standard output) 1 输出到屏幕(即控制台...2>&1使用&符号将2重定向绑定到1,意思是将错误信息指向控制台,而这个时候的控制台又指向了空设备。 如果去掉&符号的2>1会导致错误信息输出到文件名为1里面。...linux执行命令时会按顺序从左到右读取来确定0,1,2这三个输入输出的位置。 command 2>&1 >/dev/null 把两个重定向的位置写反之后就是完全不同的意思。...等同于command 2>&1 1>/dev/null linux执行命令到2>&1会将错误输出指向1即控制台,到这里就会完成错误输出(2)的位置确定。也就不会更改了。

    2.2K20

    Linux输入输出重定向

    输入重定向:把指定文件导入到命令中 输出重定向:把原本要输出到屏幕的信息写入到指定文件中 输出重定向分为:标准输出重定向和错误输出重定向 [root@linuxprobe ~]# touch linuxprobe...符合 作用 命令<文件 将文件作为命令的标准输入 命令<<分界 从标准输入中读入,直到遇见分界才停止 命令文件2 将文件1做为命令标准输入并将标准输出到文件2 输出重定向中用到的符号及其作用...命令>文件 将标准输出重定向到一个文件中(清空原文件的数据) 命令2>文件 将错误输出重定向到一个文件中(清空原有文件的数据) 命令>>文件 将标准输出重定向到一个文件中(追加到原文件的内容后面) 命令...~]# echo "Welcome to LinuxProbe.Com"> readme.txt [root@linuxprobe ~]# echo "Quality linux learning materials...">> readme.txt [root@linuxprobe ~]# cat readme.txt Welcome to LinuxProbe.Com Quality linux learning materials

    2.9K20

    六.Linux管道及重定向

    Linux管道及重定向 对shell有一定了解的人都知道,管道和重定向Linux 中非常实用的 IPC 机制。在shell中,我们通常使用符合‘|’来表示管道,符号‘>’和‘<’表示重定向。...假设此时管道读端的文件描述为 3、写端文件描述为 4 。...所以此时,当进程需要从标准输入读取数据时,进程就会通过文件描述 0 来找到管道读端所对应内存缓冲区。 从而实现了通过标准输入来读取管道的数据,也可以说是,将管道的读端重定向到了标准输入。...文件重定向 文件重定向其实与上面管道重定向到标准输入输出很类似,甚至可以直接采用上面所说的方法来实现。但是此处将讲述一种更加简洁的方法实现。...完整代码实现请参考StupidShell代码仓库 声明:本文为原创,作者为 对弈,转载时请保留本声明及附带文章链接:http://www.duiyi.xyz/linux%e7%ae%a1%e9%81%93%

    2.4K20

    Linux】项目日志——输出重定向

    项目日志——输出重定向 前言 在通常情况下,Linux/UNIX每个程序在开始运行的时候,都会自动打开三个标准stream(流),分别为标准输入流stdin(文件描述0),标准输出流stdout(文件描述...1),标准错误输出流stderr(文件描述2)。...Linux的本质就是一切皆文件,输入输出设备也是以文件形式存在和管理的。 stderr是不缓存的,stdout则进行行间缓存,即遇到\n才打印输出。...---- 重定向 有时我们使用printf来打印调试信息,但是如果终端关掉,我们就无法查看到信息了。 所以需要我们保存在文件中,以便永久保存。 > 将标准输出重定向到文件 ..../test 2 > testerr.txt >> 以附加方式重定向到文件 例如:将标准输入和标准出错以追加的方式重定向到文件中 .

    1.2K20

    Linux数据流重定向

    1 什么是数据流重定向Linux中,数据流的重定向被分为输入重定向 和 输出重定向。 输出重定向 将原本应该输出到屏幕上的信息输出到文件中。...但输出重定向能让命令的执行结果保存到文件中去。 此外,由于Linux中的设备都是以文件的形式存在,因此输出重定向还可以将命令执行的结果输出到指定设备上去。...标准输出在Linux中用1表示,因此:1> 和 1>>表示标准输出,一般1可以省略。 标准错误输出 当一条命令执行失败时,输出的结果称为标准错误输出。...标准错误输出在Linux中用2表示,因此2> 和 2>>表示标准错误输出,2不能省略!...4.3 例3 创建一个新文件,从指定文件中读取数据,并以EOF作为结束: cat > 文件名 5 命令连接 命令连接用于连接多个命令,能够控制命令的执行次序。

    1.5K50
    领券