在c++中获得当前实例(例如pid)唯一值的独立于平台的方法是什么?
What is a platform independent way of getting unique value of current instance (e.g. pid) in C++
我想以平台独立的方式(这意味着没有#if #else宏开关)获得c++中当前实例的唯一整数值的某种类型(无论它是进程id还是任何东西)。
基于时间的值是不可靠的,因为两个实例可以同时启动。
有办法做到这一点吗?
编辑:它不必是全局唯一的。它只需要在系统范围内是唯一的。
看一下Boost进程。也许正是你要找的。如果你不想包含这个库,你可以看看这个功能是如何实现的。
长话短说,答案是否定的,除非使用特定于平台的功能。
[C + + 03]
c++语言本身并没有提供任何机制来做到这一点。事实上,c++本身对进程和进程间通信一无所知。如果不使用特定于平台的功能——要么由您手工编写,这意味着#ifdef
s,要么在一些跨平台的第三方库中,如Boost,这也意味着#ifdef
s——这是无法完成的。
……
[C + + 11]
c++语言有一个线程的基本概念,但是它没有提供(在我看来)创建进程间通信机制的机制,所以上面的内容仍然适用。
这可能有点过头了,但是看看QUuid
我认为,你需要通用唯一标识符
相关文章:
- 如何创建独立于平台的宏来包装编译器扩展?
- 为什么C++哈希函数的返回类型是 std::size_t,而不是独立于平台的类型?
- 如何在Qt WebChannel中以独立于平台的方式在HTML/Javascript和C++之间进行通信?
- 独立于平台的方式捕获控制台/终端关闭事件
- 如何实现独立于平台的异步文件写入
- C++:如何保存独立于平台的二进制文件
- 独立于平台的OpenSSL库
- 如何以尽可能独立于平台的方式从 c++ 调用 .NET
- 最易于使用、轻量级、独立于平台的图形库,用于C++
- 尽管严重依赖JVM,但Java是如何独立于平台的
- 使用独立于平台的C/C++对数据块进行加密
- Mac地址-C++-独立于平台
- 如何以独立于平台的方式终止挂起在阻塞 IO 上的线程
- 与GLUT一起使用的独立于平台的用户界面库
- c++使运行时间独立于平台
- 一个应用程序实例,独立于平台,C++11
- C++-独立于平台的函数,用于将字节数组转换为值,反之亦然
- 是否有一个易于使用的,独立于平台的包,我们可以用它来读取&在c++下编写gzip流
- 在c++中获得当前实例(例如pid)唯一值的独立于平台的方法是什么?
- C++以<structs>独立于平台的方式序列化和压缩矢量