这是一个起点,假设C ++ 17可用:
#include <string_view> #include <fstream> #include <optional> std::optional<std::string> get_device_of_mount_point(std::string_view path) { std::ifstream mounts{"/proc/mounts"}; std::string mountPoint; std::string device; while (mounts >> device >> mountPoint) { if (mountPoint == path) { return device; } } return std::nullopt; }
您可以按如下方式使用此功能。
if (const auto device = get_device_of_mount_point("/")) std::cout << *device << "\n"; else std::cout << "Not found\n";