/proc/diskstats を使用して、読み書きされたセクターの数を取得しました。この数値をバイトに変換したいので、セクターサイズを探します。Linuxでフロッピー\ CDセクターサイズを見つける方法を使用しましたか? ディスク sda、sda1、および sda2 のセクター サイズを取得しますが、次のエラーで失敗します: ファイル /dev/sda の ioctl がエラーで失敗しましたsda2. あなたの助けに感謝します。ありがとう
struct hd_driveid id;
string fileName = "/dev/";
fileName += diskName;
int fd;
fd = open(fileName.c_str(), O_RDONLY|O_NONBLOCK);
if (fd < 0) {
LogError("Cannot open file " << fileName);
}
else
{
if (ioctl(fd, HDIO_GET_IDENTITY, &id) < 0) {
LogError("failed ioctl on with error " << strerror(errno));
} else {
currBytesPerSector = id.sector_bytes;
}
close(fd);
}