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


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

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

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

Оффлайн victor00000

  • Автор темы
  • Забанен
  • Старожил
  • *
  • Сообщений: 15573
  • Глухонемой (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 »
Нельзя друзья, дулу - AnrDaemon видите?
~.o

Оффлайн ALiEN175

  • Старожил
  • *
  • Сообщений: 3888
  • Capture the truth
    • Просмотр профиля
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 »
ASUS P5K-C :: Intel Xeon E5450 :: 8 GB RAM :: Nvidia 8500GT :: ZSH
SAMSUNG N150 :: Intel Atom N450 :: 2 GB RAM :: Intel GMA3150 :: ZSH

Оффлайн victor00000

  • Автор темы
  • Забанен
  • Старожил
  • *
  • Сообщений: 15573
  • Глухонемой (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 »
Нельзя друзья, дулу - AnrDaemon видите?
~.o

 

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