[英]Calling external files (e.g. executables) in C++ in a cross-platform way
[英]What is a platform independent way of getting unique value of current instance (e.g. pid) in C++
我想以一種獨立於平台的方式在C ++中獲得某種形式的C ++當前實例的唯一整數值(無論它是進程ID還是什么),這與平台無關 (這意味着沒有#if #else宏開關)。
基於時間的值將不可靠,因為兩個實例可以同時啟動。
有什么辦法可以做到這一點?
編輯:它不必是全局唯一的。 它只需要在系統范圍內是唯一的即可。
看一下Boost過程 。 可能正是您要尋找的。 如果您不想包含該庫,則可以看一下如何實現該功能。
我認為,您需要通用唯一標識符
長話短說,答案是否定的,不是沒有使用特定於平台的功能。
C ++語言本身不提供任何機制來執行此操作。 實際上,C ++本身對進程或進程間通信一無所知。 如果不使用特定於平台的功能-要么由您手動滾動(即#ifdef
,要么在某些跨平台的第三部分庫(例如Boost,也意味着#ifdef
-無法完成。
...和...
C ++語言具有線程的基本概念,但是它不提供創建進程間通信機制的機制(我可以看到),因此上述內容仍然適用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.