簡體   English   中英

是否可以在 C 的程序中使用管道()?

[英]Is it possible to pipe() within a program in C?

假設有一個現有程序在標准輸入上監聽它的輸入。 我想在同一個程序中創建一個 pthread,該程序現在是監聽標准輸入的程序,並根據通過的內容,讓它 go 到原始程序。

為此,我將創建一個 pipe(),並將 pthread 配置為寫入輸入文件描述符,並將原始程序配置為偵聽 output 描述符。 這是完成此操作的正確方法嗎? 我了解進程之間的管道,但是是否可以在單個進程中像這樣 pipe ?

當然,您可以使用 pipe(),但數據必須通過 kernel,即使兩個端點都在同一個進程中。

如果您有這方面的源代碼(我假設您有)並且您不介意進行重大更改,並且性能是您的首要任務,我建議使用共享 memory 將數據發送到原始程序。 它會比使用 pipe() 快得多

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM