当前位置: 首页 > 知识库问答 >
问题:

MacOS 上的 QProcess 正在尝试使用 diskutil

雷曜灿
2023-03-14

第5.12季度

我正在尝试获取macOS上的卷ID,并使用以下函数:

QString getVolumeInfo()
{
    QString volumeID = "Cannot find the volumeID";
    QProcess p;
    //diskutil info $(df -h / | tail -1 | cut -d' ' -f 1)
    QString command = "diskutil";
    QStringList args;
    args << "info" <<  "$(df -h / | tail -1 | cut -d' ' -f 1)";
    p.start(command, args);
    p.waitForStarted();
    p.waitForFinished();
    foreach(QString line, QString(p.readAll()).split("\n"))
    {
       if(line.contains("Volume UUID:"))
           volumeID = line;
    }
    return volumeID;
}

由于macOS的限制,我不得不使用diskutil。然而,QProcess,读取对象没有任何内容。

终端上的命令:diskutil info$(df-h/|ail-1|Cut-d''-f 1)返回大量信息,例如:

...

智能状态: 已验证

卷 UUID: 954BACF1-EBC5-4D14-86FB-0912CF7F839C

磁盘/分区UUID: 954BACF1-EBC5-4D14-86FB-0912CF7F839C

磁盘大小:500.1 GB(500068036608 字节)(正好976695384 512 字节单位)

....

当我尝试添加qDebug()来调试时,我得到以下结果:true-"找不到磁盘:$(df-h/|尾巴-1|剪切-d''-f 1)\n"

看起来论点没有格式化,还是什么?

我正在尝试实现:https://apple . stack exchange . com/questions/50302/how-can-I-tell-the-volume-the-operating-system-on

共有1个答案

方坚壁
2023-03-14

埃尔克解释后的轻微修改

QStringList args;
args << "-c" << "diskutil info $(df -h / | tail -1 | cut -d' ' -f 1)";
p.start("/bin/bash", args);
 类似资料:
  • 问题内容: 我正在尝试遵循Zed Shaw的《困难方法学习Python》指南。我需要在Powershell中使用python。我在中安装了Python 2.7.3 。每当我在Powershell中键入python时,都会出现一个错误,指出“ python”一词无法识别为cmdlet,函数,脚本文件或可操作程序的名称。我也输入了以下内容: 提供了建议的解决方案,但是在Powershell中输入pyt

  • 我是android开发的新手,在测试通过http连接发送短信并获得返回字符串时,我遇到了这个错误消息。下面是http API:

  • 我在微控制器和nodejs tcp服务器之间来回通信。微控制器与传感器数据形成json字符串。然后,微控制器将json字符串发送到WiFi模块。然后,WiFi模块使用AES256加密数据,将32个字符的十六进制字符作为密钥,然后再将加密数据发送到nodejs tcp服务器。 nodejs TCP服务器使用Google Code Crypto JS的Crypto JS模块形式。 出于测试目的,我想将

  • 我试图让一些jLabel在按下GridLayout键的JPanel上彼此交换位置。 到目前为止: 1。我只能让他们对鼠标点击做出反应 2。他们只能在其上方和左侧的位置进行切换。 注: 1。如果我设置movePlayer(1),它会工作。并从网格(8,7)切换一个带有玩家图像的JLabel,其中一个JLabel上面有一个地板图像。然而,我的问题是,当我设置movePlayer(2)时,它会给我和索引

  • 我正在阅读有关C中线程的教程并测试了以下代码: 我试图使用gcc和g编译此代码,但我总是遇到编译错误。 使用gcc-pthread thread_test.c: /tmp/ccmpQLyp。o: 在函数std::cout'thread_test.cpp: 你能帮忙吗?我必须做些什么才能让这段代码在Linux和Windows上运行吗?