以编程方式获取 Samba 共享卷 ID

Getting Samba share volume id programmatically

本文关键字:共享 ID Samba 获取 编程 方式      更新时间:2023-10-16

我需要知道在 c++ 中与 smb 共享的卷的序列号。我使用 GetVolumeInformation 从 Windows 获取此 ID。在 Linux 中,我从 bash 中得到相同的结果,使用

$ smbclient '\<ip><share>' -c volume

我怎样才能在C++中获得相同的结果?

您可以将代码与samba包链接,并模仿该工具正在执行的操作smbclient。你可以在这里找到它:https://github.com/samba-team/samba/blob/master/source3/client/client.c#L4423

但是简单合理的做法是直接从程序中调用此 shell 命令并使用popen读取输出。查看示例 这里:

如何使用 POSIX 执行命令并在C++内获取命令的输出?