全方位解读Ruby读写UNIX命名管道

Ruby语言为我们带来了简便灵活的代码编写方式,它可以方便的帮助我们实现许多功能。比如本文要向大家介绍的Ruby读写UNIX命名管道的相关技巧。

先来看一下Ruby读写UNIX命名管道中的写管道的部分:

  1. fp = open ‘pipe28′, File::RDWR  
  2. arcf=File.open(”/Tbackup/drb
    /mctps01.dbf”,”rb”)  
  3. while !arcf.eof?  
  4. fp.syswrite(arcf.read(1048576))  
  5. end  
  6. fp.close  
  7. arcf.close 

其中fp是管道的文件对象,arcf则是原文件的文件对象。打开方法open的前一个参数是用来指明管道文件的路径;后一个参数表示可以对该管道进行读写操作;其他可用的参数还有:File::RDWR|File::NONBLOCK

读:File::RD
写:File::WR
读写:File::RDWR
非阻塞模式:File::NONBLOCK

这里解释一下非阻塞模式,如果不加这个参数在程序不断往管道内写入数据,同时没有程序往外读取数据的时候,管道达到1M后就会把写管道的进程阻塞起来。加了这个参数管道就不会阻塞。

相关推荐