在實際工作中,已經編輯好了nipt_analysis的軟體,該軟體一般的輸入檔案是sam檔案,但是為了整合進入測序儀器,需要直接從比對軟體的標準輸出中讀取sam檔案,省去了比對軟體和nipt_analysis的i/o時間。
問題來了,如何將這兩個exe軟體連線起來?原來兩個exe程式就是兩個程序,現在的問題就是如何實現這兩個程序的通訊?
經查,程序之間的通訊有 共享記憶體、管道等方法。。。。。。。
找到乙個較好的解決方案:通過管道pipe的方法。
為了直觀,拿乙個簡單的例子:
有兩個程式,乙個是write.py,乙個reads.py
write.py:
a = 0
while a < 5:
a += 1
print("####processing###")
b = 0
while b < 10:
print(b)
b += 1
print("####processdone####")
reads.py
import sys
import time
var = sys.stdin.readline()[0:-1]
while var:
var = sys.stdin.readline()[0:-1]
print(var)
在cmd用管道執行結果如下:
程序之間通訊 無名管道
程序之間常用的通訊方式有 1 無名管道 具有親緣關係的父子程序 2 有名管道 任意兩個程序 3 訊號 4 訊息佇列 5 記憶體共享 6 訊號量 一般是程序之間同步的手段,一般配合互斥鎖 條件變數一起使用 7 socket套接字 現在介紹最簡單的無名管道,用到的api函式如下 比較簡單,我們可以定義乙...
程序之間的通訊之管道
管道的整體 有名 無名 概念 我們通常把乙個程序的輸出通過一塊記憶體連線到另外乙個程序的輸入。特徵 1.半雙工通訊方式,同一時刻資料只能單向流動。2.類似於資料結構中的佇列,遵循先進先出的原則。3.管道中的資料具有一次性,一旦被讀走,將被從管道中移除。4.沒有具體的檔名標識,所以只能在父子程序中通訊...
VC運用命名管道實現兩個程序之間通訊的流程
vc運用命名管道實現兩個程序之間通訊的流程 1 伺服器端 createnamedpipe,如果在已定義超時值變為零以前,有乙個例項管道可以使用,則建立成功並返回管道控制代碼,以此偵聽來自客戶機的連線請求。2 客戶端 waitnamedpipe,使伺服器程序等待來自客戶的例項連線,如果在超時值變為零以...