linux(基础IO)下

目录:

          1.追加实现重定向

          2.dup2系统调用

          3.程序替换是否会影响我们曾经打开的文件呢??

----------------------------------------------------------------------------------------------------------------------------

1.追加实现重定向

上一章我们提到了重定向的原理,可重定向的分为输出重定向、输入重定向、还有追加重定向

 上面是输出重定向的原理,那追加重定向呢?????

追加重定向进了log.txt文件当中

 那么输入重定向呢???

 

 2.dup2系统调用

那么按照上面的说法,我要实现输出重定向是不是得每次把1关掉,然后在打开文件这样的去重定向吗????????

那当然不用了,我们有一个系统调用,帮助我们完成重定向的工作

 我们来实验一下重定向标准输出

 我们来重定向标准输入

3.程序替换是否会影响我们曾经打开的文件呢??

 绝对是不会影响的

 那么子进程会共享文件描述符吗????

当我fork()创建的时候,也要形成新的task_struct,也要有自己独立的files_struct,子进程的pcb是以父进程为模板拷贝的,files_strcut也要拷贝过来,是两份完全一样的内容

但是的打开的文件只会有一份,父进程和子进程指向的是同一份文件

父进程如果曾经打开了标准输入、标准输出、标准错误???子进程也继承下去!!!

为什么我们的所以进程都会默认打开标准输入输出错误???

原因是因为我们命令行上所起的所有进程的父进程都是bash,bash是命令行进程啊,命令行当然要打开标准输入,标准输出,标准错误啊,子进程默认也就继承下去了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值