Получите физический размер блока устройстваLinux

Ответить
Anonymous
 Получите физический размер блока устройства

Сообщение Anonymous »

В приведенном ниже коде я пытаюсь получить размер физического блока устройства по пути к файлу/каталогу, находящемуся в точке монтирования файловой системы этого устройства. Я должен получить ту же информацию, что и команда sudoblockdev --getpbsz /dev/sdc, но вызов ioctl завершается неудачно с сообщением об ошибке Неподходящий ioctl для устройства.
#include
#include
#include
#include
#include
#include
#include
#include

int main() {
const int fd = open("/tmp", O_DIRECTORY | O_RDONLY);
if (fd == -1) {
printf("error %s\n", strerror(errno));
return EXIT_FAILURE;
}

unsigned long num_blocks = 0;
if (ioctl(fd, BLKPBSZGET, &num_blocks) == -1) {
printf("error %s\n", strerror(errno));
return EXIT_FAILURE;
}
printf("physical block size: %lu", num_blocks);

close(fd);

return EXIT_SUCCESS;
}
< /code>
output < /p>
error Inappropriate ioctl for device


Подробнее здесь: https://stackoverflow.com/questions/793 ... f-a-device
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»