簡體   English   中英

如何在C ++中執行os.getpid()?

[英]How do I do os.getpid() in C++?

紐伯在這里。 我正在嘗試制作一個將從python創建的命名管道讀取的c ++程序。 我的問題是,由python創建的命名管道使用os.getpid()作為管道名稱的一部分。 當我嘗試從C ++調用管道時,我使用getpid()。 我沒有從C ++獲得相同的價值。 C ++中是否有等效於os.getpid的方法?

謝謝!

編輯:

抱歉,我實際上是在使用os.getpid()通過ProcessIDtoSessionID()獲取會話ID。 然后,我將會話ID用作管道名稱的一部分

您不會獲得相同的進程ID,因為您的python程序和c ++程序在不同的進程中運行,因此具有不同的進程ID。 因此,通常使用不同的邏輯來命名您的fifo文件。

如果您作為單獨的進程運行, 則不會獲得相同的值,因為每個進程都有自己的進程ID。 尋找其他識別管道的方法。

標准庫除了文件外不提供任何其他內容。 您將需要使用其他一些特定於操作系統的API。

您無法輕松地從C ++程序中檢索Python解釋器的PID。

為命名管道分配一個常量名稱,或者如果您確實需要同一個Python程序的多個管道,則創建一個臨時文件,Python程序將其PID寫入該文件(使用文件鎖定!)-然后您可以從C ++中讀取PID程序。

暫無
暫無

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

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