以编程方式获取 Samba 共享卷 ID
Getting Samba share volume id programmatically
我需要知道在 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++内获取命令的输出?
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 是否可以通过C++扩展强制多个python进程共享同一内存
- 在cuda线程之间共享大量常量数据
- 如何从具有移动语义的类对象中生成共享指针
- 在c代码之间共享数据的最佳方式
- 在两个类中共享相同的函数调用,并在不需要时避免空实例化
- 将静态库链接到不带-fPIC的共享库中
- 从函数角度看ID到文件路径的内部与外部映射
- 通过组合不同的类型来创建唯一的id
- 我不断收到 [错误] ID 返回 1 退出状态错误,但看不到问题所在
- 为什么std::互斥需要很长的、非常不规则的时间来共享
- 使用Boost Interprocess创建托管共享内存需要很长时间
- FFMPEG配置文件级别id大小无效
- 方法内部但循环仍得到预期的不合格id错误C++
- 无法在Ubuntu上将共享库与Eclipse链接
- 从python调用openMP共享库时,未定义opnMP函数
- 在为LINUX创建共享库时,如何避免STL的私有/弱副本
- 以编程方式获取 Samba 共享卷 ID
- OpenMP:当我按线程 ID 访问共享变量时,我是否需要一个关键部分
- 如何分配套接字 ID 并且不共享C++中的环境变量