当前位置:  技术问答>linux和unix

同时把输出重定向到两个文件里

    来源: 互联网  发布时间:2016-10-26

    本文导语:  如何把一个输出流同时写到2个文件里?像unix下的tee命令一样,可以同时写到多个文件。|tee file1 file2 比如有一个文件描述符a,所有的流都被写到a对应的文件里。 现在我开了一个新的文件,它对应的文件表述符是b...

如何把一个输出流同时写到2个文件里?像unix下的tee命令一样,可以同时写到多个文件。|tee file1 file2
比如有一个文件描述符a,所有的流都被写到a对应的文件里。
现在我开了一个新的文件,它对应的文件表述符是b。

现在我想从某一时刻开始把写到a的内容同时写到b里(前提但是我不知道谁写到a里的)。

我试着用dup2(b,a), 这样可以把内容写到b里,但是a里的就没有了。
因为dup2会先关闭a。

请问有什么办法可以实现我的要求?同时让输入流写到a,b所对应的文件里?
用c,c++实现

谢谢

|
这个可以去看tee的源代码, 我觉得下面这种方式在应用层可以实现,不一定跟tee的实现完全一致.
首先创建一个管道, 然后把子进程的标准输出用dup定向到这个管道的输入. 这样子进程exec任何命令都输入到了这个管道.
父进程读取管道的输出,然后把所有读到的输出数据,分别写入file1, file2.

|
tee的原理好像就是读取标准输入,同时写入标准输出及命令行中的文件
自己实现也不麻烦

    
 
 

您可能感兴趣的文章:

  • 如何将一个命令的输出输出到屏幕上,并且同时保存到一个文件中?
  • 如何将命令的执行结果在屏幕输出的同时保存到文件
  • 将标准输出同时重定向到屏幕和文件
  • 结果可不可以同时标准输出,并且写入文件
  • 当多个进程同时进行打印输出时的问题
  • 怎样将shell命令的输出信息同时显示在屏幕和保存到日志文件中
  • 上次问问题没人回答!这次再问一个难点的---Servlet可否同时输出图象流和HTML文本?
  • cocos2d中CCSpriteFrameCache文件同时存在两个plist的问题解决
  • 一个Statement不能同时打开两个ResultSet?为了同时打开两个,可以考虑建立两个Statement?甚至两个Connection?
  • 可以有其他两个类的实例同时调用一个java实例的两个方法吗?
  • 由同一个服务端创建两个线程分别向两个客户端同时发送不同的数据···
  • 一个进程创建了两个线程,如何使得当任何一个线程(比如线程a)结束时,同时也结束线程b,也就是使两个线程一起死掉,怎么办呢?
  • vi 中编辑两个文件,怎样从其中一个文件拷一段内容到另一个文件中。(同时打开两个文件)
  • 进程同时访问两个大共享内存,会失败?
  • 用gdb同时调试两个文件
  • 两个程序同时打开文件问题?
  • 如何同时调用两个Jsp页面?
  • 怎么同时运行两个shell
  • 在一个socket守护服务进程中,如何实现同时监听两个端口?
  • 请问两个以上用户同时读一个文件的问题。谢谢!
  • tcpdump 如何同时抓取两个不同ip的包
  • 如何同时启动两个操作系统?
  • *** Linux下装Kingate软件做代理,如何能实现同时代理两个网段?
  • 同时配置两个DNS怎么写/etc/resolv.conf文件 ?
  • 双网卡的linux,ssh可以同时监听这两个ip的22端口吗?
  • 两个LINUX系统是否可以同时安装在一个硬盘上呢?
  • 如果是系统里同时存在两个不同的STL库的话会怎样?
  • 请问,两个线程同时往串口写东西,会不会乱掉啊???
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • sendmail relay 邮件的同时能不能同时bcc?
  • socket是否可以同时读写
  • 如何让VM和它的拷贝同时运行?
  • 求教如何让sendmail允许一公共邮件多人同时登陆!!(在线等)
  • 请问大虾们,同一串口能否被多个进程同时操作?
  • 关于多进程同时从消息队列取消息的问题
  • suse 10无法同时激活两块网卡
  • 编程语言 iis7站长之家
  • shell编程问题:如何同时启动程序?
  • 急求 linux下串口同时进行读写问题解决方法
  • ubuntu 耳机喇叭同时响
  • 我可以在机器上同时装win98,2000,linux,freeBSD,solaris x86吗?
  • 500人同时在线,选择什么宽带,多少k或m呢?
  • 请问如何判断左右同时按键??
  • 如何在sco/unix5.0下同时安装多个数据库(oracle和informix)???
  • 可以同时装98和linux吗
  • 两台机器同时出现同样的故障,有人能帮分析分析吗?
  • linux平台下面,能同时支持php,asp吗,如果可以,能不能详细指点。 在线等候!
  • adsl 宽带 能否同时在一台服务器上使用吗?小妹在线等候?
  • 单击leftFrame的连接,如何同时改变mainFrame和topFrame的内容?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3