问题分2步。在C ++ 14(或C)中,在Linux和Windows下。
是否可以识别(UUID)存储给定URI(文件或目录)的磁盘分区(或docker卷)?
是否有办法知道2个URI(dirs文件)是否存储在同一磁盘分区(或docker卷)上?
(为避免X Y问题:)的真正目标是能够使用最佳方法移动文件:
我有以下曲目:statvfs,GetVolumeInformationByHandleW。
答案 0 :(得分:0)
幸运的是,这很简单:
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
struct stat A, B;
stat( "/etc/fstab", &A );
stat( "/boot/grub2/grub.cfg", &B );
if( A.st_dev == B.st_dev ) {
/* Files are on same device, shallow processing is OK */
} else {
/* Files are on different devices, bytes gotta be moved */
}