Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/162.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获取当前包含运行Windows/Linux的磁盘号/名称? 让我们假设PC包含几个存储设备,我们有C++ +QT实用程序,它包含2个黑箱函数,我们不考虑它们在这里的实现: QString get_disk_serial(int drive_number); //for Windows QString get_disk_serial(const QString& device); //for Linux. For example, "/dev/sda" 我需要知道C++在当前会话中使用哪个磁盘,什么磁盘号是活动的/什么设备名是活动的。在我的上下文中,活动磁盘是一个包含分区的磁盘,而分区又包含正在运行的操作系统。_C++_Linux_Windows_Winapi_Disk - Fatal编程技术网

如何获取当前包含运行Windows/Linux的磁盘号/名称? 让我们假设PC包含几个存储设备,我们有C++ +QT实用程序,它包含2个黑箱函数,我们不考虑它们在这里的实现: QString get_disk_serial(int drive_number); //for Windows QString get_disk_serial(const QString& device); //for Linux. For example, "/dev/sda" 我需要知道C++在当前会话中使用哪个磁盘,什么磁盘号是活动的/什么设备名是活动的。在我的上下文中,活动磁盘是一个包含分区的磁盘,而分区又包含正在运行的操作系统。

如何获取当前包含运行Windows/Linux的磁盘号/名称? 让我们假设PC包含几个存储设备,我们有C++ +QT实用程序,它包含2个黑箱函数,我们不考虑它们在这里的实现: QString get_disk_serial(int drive_number); //for Windows QString get_disk_serial(const QString& device); //for Linux. For example, "/dev/sda" 我需要知道C++在当前会话中使用哪个磁盘,什么磁盘号是活动的/什么设备名是活动的。在我的上下文中,活动磁盘是一个包含分区的磁盘,而分区又包含正在运行的操作系统。,c++,linux,windows,winapi,disk,C++,Linux,Windows,Winapi,Disk,我担心您被困在用微软术语思考的陷阱中 带有操作系统的分区在Unix机器上没有什么意义。您有/boot和内核映像,/usr和userspace工具和库,/opt和可选userspace工具/libs,/etc和所有设置。。。您需要所有这些,除了/opt之外,它们可能位于各个分区上。哪一个是操作系统 Unix也不要求启动分区处于活动状态,即分区表中标记为活动 我经常在虚拟服务器上工作,在那里我甚至看不到内核启动的分区,或者在启动过程后卸载/boot的系统。然后是,在这一点上,事情变得非常有趣 总之,

我担心您被困在用微软术语思考的陷阱中

带有操作系统的分区在Unix机器上没有什么意义。您有/boot和内核映像,/usr和userspace工具和库,/opt和可选userspace工具/libs,/etc和所有设置。。。您需要所有这些,除了/opt之外,它们可能位于各个分区上。哪一个是操作系统

Unix也不要求启动分区处于活动状态,即分区表中标记为活动

我经常在虚拟服务器上工作,在那里我甚至看不到内核启动的分区,或者在启动过程后卸载/boot的系统。然后是,在这一点上,事情变得非常有趣

总之,活动分区在MS Windows之外根本没有意义。也许不再有了。早在1985年,即使是阿弥陀佛也可以轻松地跨越多卷。。。请在任何驱动器中插入卷库


如果您认为您知道操作系统的组成部分,那么可以检查装载表以查找文件系统层次结构的特定部分位于哪个设备上。然而,mount命令的输出格式和mount表的任何文件引用的位置都是特定于平台的/etc/mtab和Linux上的mount的输出是相同的,但是/etc/filesystems和AIX上的mount的输出是完全不同的,两者之间以及Linux版本的东西都不同。

在什么意义上是活动的?我不能真正理解你的问题。运行的软件通常可以访问当前安装在系统上的所有磁盘。我不认为一次只有一个活动磁盘。也许他们指的是执行进程的磁盘?@paddy我对此表示怀疑,因为我们唯一的线索是它是当前会话中使用的磁盘,这表明它的范围比当前进程的范围更大。最接近的可能是当前工作目录,这是一个常见的概念。这里没有Microsoft ish。Windows可以在RAID配置中运行,并支持跨卷。Windows可能驻留在一个物理磁盘上,也可能不驻留在一个物理磁盘上。@IInspectable:但OP的最初想法是从-Windows的活动分区和C:驱动器中获得的,这一点很清楚。