全方位解讀Ruby讀寫UNIX命名管道
Ruby語言為我們帶來了簡便靈活的代碼編寫方式,它可以方便的幫助我們實(shí)現(xiàn)許多功能。比如本文要向大家介紹的Ruby讀寫UNIX命名管道的相關(guān)技巧。#t#
先來看一下Ruby讀寫UNIX命名管道中的寫管道的部分:
- fp = open ‘pipe28′, File::RDWR
 - arcf=File.open(”/Tbackup/drb
/mctps01.dbf”,”rb”) - while !arcf.eof?
 - fp.syswrite(arcf.read(1048576))
 - end
 - fp.close
 - arcf.close
 
其中fp是管道的文件對象,arcf則是原文件的文件對象。打開方法open的前一個(gè)參數(shù)是用來指明管道文件的路徑;后一個(gè)參數(shù)表示可以對該管道進(jìn)行讀寫操作;其他可用的參數(shù)還有:File::RDWR|File::NONBLOCK
讀:File::RD
寫:File::WR
讀寫:File::RDWR
非阻塞模式:File::NONBLOCK
這里解釋一下非阻塞模式,如果不加這個(gè)參數(shù)在程序不斷往管道內(nèi)寫入數(shù)據(jù),同時(shí)沒有程序往外讀取數(shù)據(jù)的時(shí)候,管道達(dá)到1M后就會把寫管道的進(jìn)程阻塞起來。加了這個(gè)參數(shù)管道就不會阻塞。
然后來看一下Ruby讀寫UNIX命名管道中的讀管道的程序
- dfp=File.new(’/Tbackup/
hutest1.db’,'wb+’) - pfp=open ‘abc1′, File::RDWR
 - while true
 - dfp.write(pfp.read(1048576))
 - end
 - dfp.close
 - pfp.close
 
這里pfp是管道文件的對象,而dfp是目標(biāo)文件的對象。















 
 
 


 
 
 
 