Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: C - посмотреть размеры байтов (/dev/sdX)  (Прочитано 993 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн victor00000

  • Автор темы
  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
// get_hf.c
// ~$ gcc get_hf.c -o get_hf
// ~$ sudo ./get_hf /dev/sda
// victor00000 (c) 2019.
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>

int main(int ia, char *ca[])
{
long long hfsize;
FILE *hf;

if (ia != 2)
return 1;
hf = fopen(ca[1], "rb");
if (hf == 0) {
perror(ca[1]);
return 1;
}
hfsize = lseek64(fileno(hf), 0, SEEK_END);
fclose(hf);
printf("%s: %lld bytes.\n", ca[1], hfsize);
return 0;
}

вывод:
2:L~/c/disk$
2:L~/c/disk$ sudo ./get_hf /dev/sda
/dev/sda: 120034123776 bytes.
2:L~/c/disk$
2:L~/c/disk$ sudo ./f1 /dev/sde
/dev/sde: 1000204886016 bytes.
2:L~/c/disk$
« Последнее редактирование: 16 Марта 2019, 02:36:17 от victor00000 »
Wars ~.o

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6739
  • 20% Cooler
    • Просмотр профиля
Re: C - посмотреть размеры байтов (/dev/sdX)
« Ответ #1 : 16 Марта 2019, 02:40:28 »
df -B1 /
Файловая система   1B-блоков Использовано   Доступно Использовано% Cмонтировано в
/dev/sda         10737418240   4903440384 5254967296           49% /

df -B1K /
Файловая система 1K-блоков Использовано Доступно Использовано% Cмонтировано в
/dev/sda          10485760      4788584  5131768           49% /

df -B1M /
Файловая система 1M-блоков Использовано Доступно Использовано% Cмонтировано в
/dev/sda             10240         4677     5012           49% /

df -B1G /
Файловая система 1G-блоков Использовано Доступно Использовано% Cмонтировано в
/dev/sda                10            5        5           49% /

df -B512 /
Файловая система 512B-блоков Использовано Доступно Использовано% Cмонтировано в
/dev/sda            20971520      9577192 10263512           49% /


df -B555 /
Файловая система 555B-блоков Использовано Доступно Использовано% Cмонтировано в
/dev/sda            19346700      8836261  9467237           49% /

df -h
Файловая система Размер Использовано  Дост Использовано% Cмонтировано в
/dev/sda            10G         4,6G  4,9G           49% /


Велосипед изволите изобретать?
« Последнее редактирование: 16 Марта 2019, 03:00:29 от ALiEN175 »
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн victor00000

  • Автор темы
  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: C - посмотреть размеры байтов (/dev/sdX)
« Ответ #2 : 16 Марта 2019, 03:02:11 »
не, только FILE *hf не получилось в fseek большие размеры, а lseek64 помог.


Пользователь добавил сообщение 16 Марта 2019, 03:15:50:
// hfsize = lseek64(fileno(hf), 0, SEEK_END);
fseek (hf,0,SEEK_END);
hfsize = ftell (hf);
вот, папробуй.
« Последнее редактирование: 16 Марта 2019, 03:15:50 от victor00000 »
Wars ~.o

 

Страница сгенерирована за 0.028 секунд. Запросов: 25.