<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Свободное место на НЖМД в linux (sys/statfs)</title>
    <link>https://opennet.ru/openforum/vsluhforumID1/81631.html</link>
    <description>Здравствуйте!&lt;br&gt;&lt;br&gt;Пытаюсь с помощью statfs получить информацию о свободном месте на файловой системе.&lt;br&gt;&lt;br&gt;Код такой:&lt;br&gt;#include &amp;lt;sys/statfs.h&amp;gt;&lt;br&gt;struct statfs diskFree;&lt;br&gt;statfs ( diskPartition, &amp;diskFree );&lt;br&gt;value = diskFree.f_bsize * diskFree.f_bavail;&lt;br&gt;&lt;br&gt;Переменная diskPartition - путь до смонтированной файловой системы;&lt;br&gt;Переменная value - возвращенное количество байт свободного места;&lt;br&gt;Проблема в том что на корневом разделе место определяется правильно (сам раздел 5 гигов, свободного места - 900 мегабайт), но на большом разделе (20 гигабайт) место определяется неправильно (вместо 12 гигабайт возврашается 4 гигабайта).&lt;br&gt;&lt;br&gt;Подскажите че делать? &lt;br&gt;Или придется тупо вывод команды df отрабатывать...&lt;br&gt;</description>

<item>
    <title>Свободное место на НЖМД в linux (sys/statfs) (demiurg)</title>
    <link>https://opennet.ru/openforum/vsluhforumID1/81631.html#3</link>
    <pubDate>Sun, 24 Aug 2008 09:12:54 GMT</pubDate>
    <description>Фух... вроде разобрался... &lt;br&gt;&lt;br&gt;Вот код:&lt;br&gt;&lt;br&gt;#include &amp;lt;sys/statvfs.h&amp;gt;&lt;br&gt;struct statvfs diskFree;&lt;br&gt;statvfs ( diskPartition, &amp;diskFree );&lt;br&gt;/*cout &amp;lt;&amp;lt; &quot;f_bfree = &quot; &amp;lt;&amp;lt; diskFree.f_bfree &amp;lt;&amp;lt; endl;&lt;br&gt;cout &amp;lt;&amp;lt; &quot;f_bavail = &quot; &amp;lt;&amp;lt; diskFree.f_bavail &amp;lt;&amp;lt; endl;&lt;br&gt;cout &amp;lt;&amp;lt; &quot;f_bsize = &quot; &amp;lt;&amp;lt; diskFree.f_bsize &amp;lt;&amp;lt; endl;&lt;br&gt;cout &amp;lt;&amp;lt; &quot;f_files = &quot; &amp;lt;&amp;lt; diskFree.f_files &amp;lt;&amp;lt; endl;&lt;br&gt;cout &amp;lt;&amp;lt; &quot;f_blocks = &quot; &amp;lt;&amp;lt; diskFree.f_blocks &amp;lt;&amp;lt; endl;*/&lt;br&gt;value = int(double(diskFree.f_bavail) * double(diskFree.f_bsize)/1024.0/1024.0); &lt;br&gt;&lt;br&gt;Основная проблема была в том, что я забыл о преобразовании типов. Я и до вышеуказанных советов пытался использовать statvfs, но результаты вызывали легкий шок. А все просто если делишь что-то на что-то надо не забывать преобразовывать типы данных (как double в мое примере). &lt;br&gt;Всем спасибо большое... тема закрыта... &lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Свободное место на НЖМД в linux (sys/statfs) (mikra)</title>
    <link>https://opennet.ru/openforum/vsluhforumID1/81631.html#2</link>
    <pubDate>Wed, 20 Aug 2008 12:25:22 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Переменная diskPartition - путь до смонтированной файловой системы; &lt;br&gt;&amp;gt;Переменная value - возвращенное количество байт свободного места; &lt;br&gt;&amp;gt;Проблема в том что на корневом разделе место определяется правильно (сам раздел &lt;br&gt;&amp;gt;5 гигов, свободного места - 900 мегабайт), но на большом разделе &lt;br&gt;&amp;gt;(20 гигабайт) место определяется неправильно (вместо 12 гигабайт возврашается 4 гигабайта). &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Подскажите че делать? &lt;br&gt;&amp;gt;Или придется тупо вывод команды df отрабатывать... &lt;br&gt;&lt;br&gt;Товарищ, ты пытаешься не свободное место, а моток колючей проволоки получить от скрещивания ежа с ужом :)&lt;br&gt;&lt;br&gt;long    f_bsize;    /* optimal transfer block size */&lt;br&gt;&lt;br&gt;&quot;оптимал трансфер блок сайз&quot; это не тоже самое, что &quot;блок сайз&quot;&lt;br&gt;&lt;br&gt;Про statvfs читай. И вообще, не принебрегай разделом &quot;see also&quot;&lt;br&gt;</description>
</item>

<item>
    <title>Свободное место на НЖМД в linux (sys/statfs) (Pahanivo)</title>
    <link>https://opennet.ru/openforum/vsluhforumID1/81631.html#1</link>
    <pubDate>Wed, 20 Aug 2008 10:48:15 GMT</pubDate>
    <description>&amp;gt;Подскажите че делать? &lt;br&gt;&amp;gt;Или придется тупо вывод команды df отрабатывать... &lt;br&gt;&lt;br&gt;дак мож собственно код df глянуть?&lt;br&gt;и не изобретать велосипед )))&lt;br&gt;</description>
</item>

</channel>
</rss>
