簡體   English   中英

什么是在C ++中獲取當前實例(例如pid)的唯一值的獨立於平台的方法

[英]What is a platform independent way of getting unique value of current instance (e.g. pid) in C++

我想以一種獨立平台的方式在C ++中獲得某種形式的C ++當前實例的唯一整數值​​(無論它是進程ID還是什么),這與平台無關 (這意味着沒有#if #else宏開關)。

基於時間的值將不可靠,因為兩個實例可以同時啟動。

有什么辦法可以做到這一點?

編輯:它不必是全局唯一的。 它只需要在系統范圍內是唯一的即可。

看一下Boost過程 可能正是您要尋找的。 如果您不想包含該庫,則可以看一下如何實現該功能。

這可能是一個矯kill過正 ,但請看一下QUuid

我認為,您需要通用唯一標識符

長話短說,答案是否定的,不是沒有使用特定於平台的功能。

[C ++ 03]

C ++語言本身不提供任何機制來執行此操作。 實際上,C ++本身對進程或進程間通信一無所知。 如果不使用特定於平台的功能-要么由您手動滾動(即#ifdef ,要么在某些跨平台的第三部分庫(例如Boost,也意味着#ifdef -無法完成。

...和...

[C ++ 11]

C ++語言具有線程的基本概念,但是它不提供創建進程間通信機制的機制(我可以看到),因此上述內容仍然適用。

暫無
暫無

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

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