abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

dnes 05:55 | Bezpečnostní upozornění

V knihovně glibc (GNU C Library) byla nalezena a v upstreamu opravena bezpečnostní chyba CVE-2018-1000001 (buffer underflow) zneužitelná k lokální eskalaci práv. Podrobnosti na halfdog.net.

Ladislav Hagara | Komentářů: 0
včera 13:11 | Komunita

Mozilla.cz informuje o 2 plánovaných novinkách ve Firefoxu. Nové webové funkce budou ve Firefoxu dostupné jen přes HTTPS (en) a nové verze Firefoxu přinesou rychlejší přepínání panelů (předehřívání nebo žhavení panelů, anglicky tab warming).

Ladislav Hagara | Komentářů: 4
včera 12:44 | IT novinky

Hodnota Bitcoinu, decentralizované kryptoměny, klesla na cca 12 000 dolarů. Před měsícem byla hodnota Bitcoinu téměř 20 000 dolarů [reddit].

Ladislav Hagara | Komentářů: 9
včera 05:55 | Bezpečnostní upozornění

Bezpečnostní tým Cisco Talos upozorňuje na celou řadu bezpečnostních chyb v Blenderu. Vývojáři Blenderu byli o chybách informování již v září. Dosud tyto chyby ale opraveny nebyly. Doporučeno je neotevírat v Blenderu soubory z nedůvěryhodných zdrojů.

Ladislav Hagara | Komentářů: 2
15.1. 17:22 | Bezpečnostní upozornění

Společnost F-Secure upozorňuje na bezpečnostní "problém" v Intel AMT (Active Management Technology). Útočník s fyzickým přístupem k počítači s povoleným AMT a nenastaveným heslem k MEBx (Management Engine BIOS Extension) může obejít heslo nastavené v BIOSu, pin v TPM, přihlašovací jméno a heslo do operačního systému nebo i šifrování disků restartováním tohoto počítače a při jeho startu zavedením MEBx (CTRL-P) a zadáním výchozího hesla "admin". Pak už útočníkovi stačí pouze změnit heslo a povolit vzdálený přístup k počítači na úrovni AMT.

Ladislav Hagara | Komentářů: 10
15.1. 15:11 | Zajímavý projekt

Na Indiegogo byla dnes spuštěna kampaň na podporu 6 palcového notebooku a kapesní herní konzole GPD WIN 2. Cena v rámci kampaně byla stanovena na 649 dolarů. Cílová částka 100 tisíc dolarů byla překonána již 8 krát. Ukázka s Linuxem na YouTube.

Ladislav Hagara | Komentářů: 4
15.1. 05:55 | Bezpečnostní upozornění

V GitLabu, v open source alternativě GitHubu, tj. v softwarovém nástroji s webovým rozhraním umožňujícím spolupráci na zdrojových kódech, byl nalezen vážný bezpečnostní problém. Bezpečnostní aktualizace bude vydána ve středu 17. ledna v 00:59.

Ladislav Hagara | Komentářů: 3
15.1. 04:44 | Komunita

Firefox končí s podporou GTK+ 2. Od verze 59 bude možné Firefox sestavit pouze s GTK+ 3 [reddit].

Ladislav Hagara | Komentářů: 31
15.1. 01:22 | Pozvánky

První letošní pražský sraz spolku OpenAlt se koná již tento čtvrtek 18. ledna od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Vítáni jsou všichni příznivci svobodného softwaru a hardwaru, ESP32, DIY, CNC, SDR nebo dobrého piva. Prvních deset účastníků srazu obdrží samolepku There Is No Cloud… just other people's computers. od Free Software Foundation.

xkucf03 | Komentářů: 0
15.1. 00:11 | Pozvánky

Spolek OpenAlt zve příznivce otevřených technologií a otevřeného přístupu na 148. brněnský sraz, který proběhne v pátek 19. ledna od 18:00 hodin v MIKI pub & restaurant na Makovského náměstí 3166/2. Sraz je spojen s návštěvou (již v 16:30) Ústavu fyzikálního inženýrství Fakulty strojního inženýrství Vysokého učení technického v Brně.

Ladislav Hagara | Komentářů: 0
Jak se vás potenciálně dotkne trend odstraňování analogového audio konektoru typu 3,5mm jack z „chytrých telefonů“?
 (7%)
 (1%)
 (1%)
 (1%)
 (77%)
 (13%)
Celkem 1307 hlasů
 Komentářů: 48, poslední 22.12. 22:05
    Rozcestník
    Štítky: není přiřazen žádný štítek

    Dotaz: Jak zjistit volné místo na disku? (C/C++)

    oryctolagus avatar 30.1.2010 20:25 oryctolagus | skóre: 29 | blog: Untitled
    Jak zjistit volné místo na disku? (C/C++)
    Přečteno: 958×
    Ahoj,

    potřeboval bych, aby můj program uměl zjistit volný místo na disku. Z dokumentace jsem si vytáhl statfs(2) a následně napsal takovýhle kód:
      struct statfs stats;
    
      cout << statfs(path.c_str(), &stats) << endl;   /* path = "/" */
      cout << stats.f_bfree << " [" << stats.f_bsize << "]" << endl;
      cout << stats.f_bfree * stats.f_bsize << endl;
    
    Statfs proběhlo v pořádku (vrací nulu), ale výsledný volný místo se dost liší od čísla co ukazuje df, asi vo 1.5 Giga. To se mi vůbec nelíbí. Podezírám stafs(), že mi vrací nějaký bullshity. Zkoušel jsem i statvfs(), ale výsledek byl stejný.
    Nahlídl jsem do zdrojáků df, no ale kdo se má v tom jejich #define pekle vyznat. Používaj tam taky statvfs(), ale dělaj okolo toho nějaký úpravy, který se mi nepodařilo dešifrovat...

    Pro úplnost ještě přihodim příslišný výpisy z shellu:
    root|vojta-dell /tmp #> /cesta/k/programu
    0
    1542023 [4096]
    6316126208
    root|vojta-dell /tmp #> df -h
    Souborový systém  Velikost Užito Volno Uži% Připojeno do
    /dev/sda1              30G   24G  4,4G  85% /
    (...)
    
    Díky za každou radu.
    There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

    Řešení dotazu:


    Odpovědi

    AraxoN avatar 30.1.2010 20:38 AraxoN | skóre: 45 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: Jak zjistit volné místo na disku? (C/C++)
    A nebude to tým, že df ukazuje voľné miesto využiteľné bežným používateľom? (5% veľkosti fs je rezervované pre roota)
    A fine is a tax for doing wrong. A tax is a fine for doing well.
    oryctolagus avatar 30.1.2010 20:47 oryctolagus | skóre: 29 | blog: Untitled
    Rozbalit Rozbalit vše Re: Jak zjistit volné místo na disku? (C/C++)
    Asi ne. Ta hodnota, co ukazuje df jsou asi 3/4 tý, co dostanu ze statfs()...
    There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
    oryctolagus avatar 30.1.2010 20:50 oryctolagus | skóre: 29 | blog: Untitled
    Rozbalit Rozbalit vše Re: Jak zjistit volné místo na disku? (C/C++)
    Abych byl přesný, statfs() ukazuje 6'166'932 volných 1K bloků, zatímco df jen 4'594'128 1K bloků.
    There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
    Jendа avatar 30.1.2010 20:56 Jendа | skóre: 74 | blog: Výlevníček | JO70FB
    Rozbalit Rozbalit vše Re: Jak zjistit volné místo na disku? (C/C++)
    Takže rozdíl je +/- 1,5 G (jsem líný to přepočítávat přes 1024, ale o tom radši pomlčíme ;-)). A kolik je 5% z 30 G?
    I don't believe in the concept of personal property that isn't mine.
    oryctolagus avatar 30.1.2010 21:00 oryctolagus | skóre: 29 | blog: Untitled
    Rozbalit Rozbalit vše Re: Jak zjistit volné místo na disku? (C/C++)
    Hergot, sem to ale hlupák :-D
    na co to svést? Jó, už vím, na notebooku se špatně pracuje s kalulačkou, nemám numpad :-D

    Každopádně díky.
    There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
    30.1.2010 21:42 nikdo
    Rozbalit Rozbalit vše kalkulačka? :-D
    No nevím 5% z 30 se snad počítá z hlavy ne? 30/20 = 3/2 = 1,5 :D
    oryctolagus avatar 30.1.2010 22:21 oryctolagus | skóre: 29 | blog: Untitled
    Rozbalit Rozbalit vše Re: kalkulačka? :-D
    No já hlavně počítal chvílema špatnej filesystém (co byl na /dev/loop), se mi to celý v mylšenkách pomíchalo, zmatek, chaos,... :-D
    There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
    30.1.2010 21:10 mich | skóre: 16
    Rozbalit Rozbalit vše Re: Jak zjistit volné místo na disku? (C/C++)
    Zajimavé. Mě ukazuje f_bavail spravne číslo.:-(
    je to teď v módě, na žive o tom furt píšou
    Jendа avatar 30.1.2010 21:12 Jendа | skóre: 74 | blog: Výlevníček | JO70FB
    Rozbalit Rozbalit vše Re: Jak zjistit volné místo na disku? (C/C++)
    Nemáš FS bez vyhrazených bloků? (asi všechny kromě ext)
    I don't believe in the concept of personal property that isn't mine.
    30.1.2010 21:24 mich | skóre: 16
    Rozbalit Rozbalit vše Re: Jak zjistit volné místo na disku? (C/C++)
    ve struct stafts jsou 2 promenne ukazujici volne misto:
    long    f_bfree;    /* free blocks in fs */
    long    f_bavail;   /* free blocks avail to non-superuser */
    
    neni jejich rozdil je podle me tech 5% o kterych se tu mluvi
    je to teď v módě, na žive o tom furt píšou
    30.1.2010 21:31 mich | skóre: 16
    Rozbalit Rozbalit vše Re: Jak zjistit volné místo na disku? (C/C++)
    Radši to dopíšu aby to bylo jasné - tazatel používá f_bfree, ale má používat f_bavail
    je to teď v módě, na žive o tom furt píšou
    oryctolagus avatar 30.1.2010 22:25 oryctolagus | skóre: 29 | blog: Untitled
    Rozbalit Rozbalit vše Re: Jak zjistit volné místo na disku? (C/C++)
    A proč? Mně nevadí, jestli se filesystém zabere po vrch. Příslušnej kód stejně nepůjde jinde, než pod právama roota. Šlo mi jen o to, aby to číslo nebyla nějaká úplná hovadina, a to se díky tobě prokázalo, že není...
    There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
    AraxoN avatar 30.1.2010 23:16 AraxoN | skóre: 45 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: Jak zjistit volné místo na disku? (C/C++)
    Vlastný C-éčkový program bežiaci pod právami roota? Podľa mňa zlý nápad. Ak nie si C/C++ guru, tak je veľmi jednoduché spraviť chybu, nedočítať manuál ku funkcii, neošetriť nejaký vstup, či zabudnúť na akúsi zriedkavú okrajovú podmienku.
    A fine is a tax for doing wrong. A tax is a fine for doing well.
    oryctolagus avatar 31.1.2010 00:45 oryctolagus | skóre: 29 | blog: Untitled
    Rozbalit Rozbalit vše Re: Jak zjistit volné místo na disku? (C/C++)
    Je možné nastavit loop device a mountovat ho bez práv roota? Pokud ano, nebyly by práva roota nezbytný...
    There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
    Jendа avatar 31.1.2010 00:49 Jendа | skóre: 74 | blog: Výlevníček | JO70FB
    Rozbalit Rozbalit vše Re: Jak zjistit volné místo na disku? (C/C++)
    man sudo

    (a jinak pokud se dá do fstabu s parametry loop a user, tak přimountovat půjde bez roota)
    I don't believe in the concept of personal property that isn't mine.
    oryctolagus avatar 31.1.2010 01:01 oryctolagus | skóre: 29 | blog: Untitled
    Rozbalit Rozbalit vše Re: Jak zjistit volné místo na disku? (C/C++)
    Ále sudo znám, co já potřebuju je nastavovat loop a mountovat přímo z programu - voláním API. Mountuje se voláním mount() a loop se nasstavuje před ioctl(). Tam mi je sudo nahouby.
    Leda bych volal externí nástroje mount a losetup, ale to mi nepřijde jako právě čistý řešení, radši bych se tomu vyhnul...
    There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
    31.1.2010 13:32 vencas | skóre: 32
    Rozbalit Rozbalit vše Re: Jak zjistit volné místo na disku? (C/C++)
    To se řeší tak, že velmi krátký hlavní program (který např. provede mount) se pustí rootem, ale sám pak pustí jiný proces s omezeným uživatelem. Např. zde.
    31.1.2010 13:34 vencas | skóre: 32
    Rozbalit Rozbalit vše Re: Jak zjistit volné místo na disku? (C/C++)
    (což funguje jen s mountem hned na začátku, jinak ne -- pardon)
    oryctolagus avatar 31.1.2010 14:57 oryctolagus | skóre: 29 | blog: Untitled
    Rozbalit Rozbalit vše Re: Jak zjistit volné místo na disku? (C/C++)
    Ok, díky, mrknu na to.

    V zásadě by mi mohlo stačit, když na začátku zrušim veškerý capabilities a pak ve chvíli, kdy potřebuju mount() nebo ioctl() na chvíli příslušnou capabilitie(s) povolim, ne?
    There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
    31.1.2010 15:05 benn | skóre: 18
    Rozbalit Rozbalit vše Re: Jak zjistit volné místo na disku? (C/C++)
    Kdysi jsem taky potřeboval, zjišťovat využité místo a vyšel jsem z df od BusyBoxu. Kde počítají:

    Využité místo v procentech:
    blocks_used = s.f_blocks - s.f_bfree;
    blocks_percent_used = 0;
    if (blocks_used + s.f_bavail) {
           blocks_percent_used = (blocks_used * 100ULL + (blocks_used + s.f_bavail)/2) / (blocks_used + s.f_bavail);
    }
    
    
    A zbytek informaci:
    static unsigned long kscale(unsigned long b, unsigned long bs)
    {
           return (b * (unsigned long long) bs + 1024/2) / 1024;
    }
    
    printf(" %9lu %9lu %9lu %3u%% %s\n",
    	kscale(s.f_blocks, s.f_bsize),    Celkova kapacita (kB)
    	kscale(s.f_blocks - s.f_bfree, s.f_bsize),   Vyuzito (kB)
    	kscale(s.f_bavail, s.f_bsize),     Dostupne misto (kB)
    	blocks_percent_used, mount_point); Procent zaplneni a pripojny bod
    

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.