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í
×
    včera 21:29 | Nová verze

    Open source download manager Fatrat povstal z popela. Autor k dvacetiletému výročí projektu přidal do vínku podporu nejnovější knihovny libtorrent, rozhraní portoval na QT6, došlo k nahrazení podpory java rozšíření pythonem. Webové rozhraní bylo přepsáno s podporou mobilních zařízení. Aplikaci je taktéž možno zkompilovat bez podpory GUI. Více informací v releases.

    Max | Komentářů: 5
    včera 21:11 | Bezpečnostní upozornění

    Zranitelnost Broccoli2Shell (CVE-2026-111497) v kompresní knihovně Brotli se netýká pouze Node.js. Ohroženy jsou také aplikace využívající HTTP. Knihovnu používají webové prohlížeče, servery i řada dalších aplikací a technologií, například také Python nebo Bun. Identifikace všech zranitelných komponent může být obtížná, protože knihovna bývá součástí dalších softwarových balíčků nebo je přímo začleněna do spustitelných souborů aplikací.

    Ladislav Hagara | Komentářů: 2
    včera 18:33 | Komunita

    Quad9, švýcarský celosvětově působící neziskový poskytovatel DNS, od 24. listopadu 2026 ukončí své služby ve Francii kvůli soudnímu sporu s katarskou televizní stanicí beIN. Ta požadovala blokování domén, které podle ní nelegálně zpřístupňují sportovní přenosy. Francouzský soud Katarům vyhověl a nařídil (🇫🇷, PDF) Quad9 blokaci zavést, pod hrozbou pokuty 1000 eur denně. Provozovatel příkaz odmítá s tím, že blokace

    … více »
    Pendrekama do nich❗ | Komentářů: 1
    včera 15:22 | Zajímavý článek

    Článek na blogu APNIC vysvětluje, jak správně vytvářet a používat ASPA záznamy — podepsané objekty v RPKI, které uvádějí, kteří poskytovatelé směrování jsou pro dané autonomní číslo (ASN) oprávněni. Síťoví operátoři je mohou využít k ověřování tras BGP a k odhalování úniků tras či podvržených tras.

    vencour | Komentářů: 1
    včera 14:33 | Nová verze

    Byla vydána (𝕏) verze 8.0.0 open source programu pro prolamování hesel hashcat (GitHub, Wikipedie). Přehled novinek v příspěvku v diskusním fóru a pdf.

    Ladislav Hagara | Komentářů: 0
    včera 14:22 | Nová verze

    Byla vydána (𝕏, Bluesky) nová verze 2026.3 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem 6 nových nástrojů v oficiálním oznámení na blogu.

    Ladislav Hagara | Komentářů: 1
    včera 08:35 | Komunita
    Pořadatelé dalšího ročníku komunitního setkání správců nejen českých a slovenských sítí CSNOG 2027 upozorňují, Call for Abstracts pro blížící se akci (20. a 21. ledna 2027, Zlín) končí už 31. října, tedy na konci tohoto týdne.. … více »
    VSladek | Komentářů: 1
    24.10. 23:22 | Bezpečnostní upozornění

    Výzkumníci ukazují, jak mohou otevřené tunely a IPv6 Extension Headers synchronizovat pakety do krátkých provozních špiček. V kontrolovaném experimentu naměřili přes 180násobnou koncentraci paketového toku vůči průměrné rychlosti odesílání — nikoli 180násobné zvětšení objemu dat. Článek obsahuje metodiku, limity měření i mitigace pro GRE, IPIP a další tunely.

    vencour | Komentářů: 1
    24.10. 12:44 | Pozvánky

    Po velkém úspěchu prvního MobileLinux Hackdaye se vracíme do Českých Budějovic s druhým ročníkem. V pátek 30. října 2026 od 10:00 se v prostorách Jihočeské univerzity uskuteční Embedded & MobileLinux Hackday #2. Těšit se můžete na témata jako Immutable Linux na telefonech (BengalOS), U-Boot a upstream vývoj, AI optimalizace pro embedded systémy nebo otevřený hardware. Nebude chybět praktické hackování, sdílení zkušeností a možnost … více »

    lkocman | Komentářů: 1
    24.10. 00:44 | Bezpečnostní upozornění

    Dne 21. října 2026 vydal projekt Node.js bezpečnostní aktualizace opravující deset zranitelností, včetně jedné umožňující potenciální vzdálené spuštění kódu (RCE). Nejzajímavější je CVE-2026-111497, chyba dekodéru Brotli, kterou objevili výzkumníci využívající OpenAI Codex Security. Chyba je v nativním dekodéru Brotli, nikoli v samotném JavaScriptu. Speciálně vytvořený komprimovaný vstup způsobí, že dekodér zamění

    … více »
    vencour | Komentářů: 15
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (20%)
     (30%)
     (9%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2920 hlasů
     Komentářů: 34, poslední včera 08:24
    Rozcestník

    Dotaz: C - procházení souborů

    15.7.2021 07:45 PA
    C - procházení souborů
    Přečteno: 946×
    Ahoj,

    reším problém, jak v C jednoduše vylistovat a získat názvy soubodů v adresáři a podadresářích.

    Díky za rady.

    PA

    Řešení dotazu:


    Odpovědi

    15.7.2021 08:36 X
    Rozbalit Rozbalit vše Re: C - procházení souborů
    Řešení 1× (Andrej)
    15.7.2021 09:01 z_sk | skóre: 34 | blog: analyzy
    Rozbalit Rozbalit vše Re: C - procházení souborů
    Podla C standardu je to opendir(), readdir() a closedir().
    debian.plus@protonmail.com
    15.7.2021 18:56 10minuteman
    Rozbalit Rozbalit vše Re: C - procházení souborů
    To není C standard, to je POSIX standard.

    Pokud má OP POSIX, tak OK, jinak může zkusit něco jako TinyDir.
    15.7.2021 19:56 z_sk | skóre: 34 | blog: analyzy
    Rozbalit Rozbalit vše Re: C - procházení souborů
    Máš pravdu, POSIX.
    debian.plus@protonmail.com
    15.7.2021 19:58 z_sk | skóre: 34 | blog: analyzy
    Rozbalit Rozbalit vše Re: C - procházení souborů
    A použi rekurziu.
    debian.plus@protonmail.com
    18.7.2021 18:54 jiwopene | skóre: 31 | blog: Od každého trochu…
    Rozbalit Rozbalit vše Re: C - procházení souborů
    Pokud nebude mít velké stack framy té funkce, která prochází. Vzhledem k tomu, že tazatel nespecifikuje hloubku adresářového stromu, by mu to mohlo padat na přetečení zásobníku. „Univerzálnější“ je prohledávat FS do hloubky bez rekurze: dokud zásobník Z (datová struktura na haldě) cest k adresářům není prázdný, opakuj: vezmi ze Z prvek (cestu k adresáři), vypiš všechny soubory v ní a přidej všechny cesty k podadresářům na Z.

    (Tuším tady úkol.)
    .sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky.
    18.7.2021 23:32 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: C - procházení souborů
    Rekurze bývá implementována zásobníkem. Není tedy důvod k nepoužívání rekurze.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    19.7.2021 18:27 10minuteman
    Rozbalit Rozbalit vše Re: C - procházení souborů
    Zásobník je omezený shora, zatímco hloubka podobné iterace bývá nedeterminovaná/telná, takže to může přetéct. Z toho důvodu se například v C++ nedoporučuje binární strom implementovaný pomocí unique_ptr mazat tak, že smažu kořen.
    19.7.2021 18:32 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: C - procházení souborů
    O jaké hloubce se tady bavíme? Jednotky, tisíce nebo milióny zanoření podadresářů?
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    19.7.2021 22:31 10minuteman
    Rozbalit Rozbalit vše Re: C - procházení souborů
    Záleží na velikosti stack framu.

    Většinou je to samozřejmě jedno, ale je fajn mít to na paměti.
    1.8.2021 13:59 rotator
    Rozbalit Rozbalit vše Re: C - procházení souborů
    Hmm, to s tím uvolňováním stromu C++ by mě nenapadlo a říkám si, že kdybych na to někdy narazil, tak se to bude obtížně ladit... díky za radu!
    19.7.2021 11:12 z_sk | skóre: 34 | blog: analyzy
    Rozbalit Rozbalit vše Re: C - procházení souborů
    No, je dalsia moznost. A to pouzit inline rekurziu. Lahko citatelny kod pre pouzivatela a optimalizovany kod pre hardver, s minimimom ukladanych dat. ;)

    Ved rekurziu si napis tak, ze pomocne data budu pouzivat haldu a nie stack.

    Pripadne cez goto.

    V Linuxe nie je problem zo stackom pri Intel/AMD pouzitom ako bezne PC, lebo ak je maly stack, da sa prealakovat a bude vacsi.
    debian.plus@protonmail.com
    21.7.2021 09:05 z_sk | skóre: 34 | blog: analyzy
    Rozbalit Rozbalit vše Re: C - procházení souborů
    V Linuxe nie je problem zo stackom pri Intel/AMD pouzitom ako bezne PC, lebo ak je maly stack, da sa prealakovat a bude vacsi. V Linuxe nie je problem zo stackom pri Intel/AMD pouzitom ako bezne PC, lebo ak je maly stack, da sa prealakovat a bude vacsi.
    Toto nie je pravda. Da sa iba zmenit velkost pred spustenim (pripadne bez limitu).
    debian.plus@protonmail.com
    24.7.2021 09:47 jiwopene | skóre: 31 | blog: Od každého trochu…
    Rozbalit Rozbalit vše Re: C - procházení souborů
    To není možné si zaalokovat paměť a tam nastavit esp/rsp a ebp/rbp? Nikdy jsem to nezkoušel, ale myslím si, že by to mělo fungovat.
    .sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky.
    24.7.2021 10:20 jiwopene | skóre: 31 | blog: Od každého trochu…
    Rozbalit Rozbalit vše Re: C - procházení souborů
    Tak jsem to zkusil. Zde je kód pro x86_64:
    #include <stdio.h>
    #include <stdlib.h>
    
    #define CHARS 1024
    
    long int
    move_stack(void *stack_bot, void (*jmp_addr)(void));
    
    void
    function_in_new_stack(void)
    {
    	long int foo;
    	char string[CHARS];
    
    	for (char *ch = string + CHARS; ch >= string; ch--) {
    		*ch = 'A';
    	}
    
    	puts(string);
    
    	printf("Cur. stack ptr: 0x%lx\n", (size_t) &foo);
    }
    
    int
    main(int argc, char **argv)
    {
    	long int foo;
    	void *stack, *stack_bot;
    
    	printf("Cur. stack ptr: 0x%lx\n", (size_t) &foo);
    
    	stack = malloc(4096);
    	stack_bot = stack + 4096;
    
    	printf("New stack addr.: 0x%lx\n", (size_t) stack);
    	printf("New stack bottom: 0x%lx\n", (size_t) stack_bot);
    
    	puts("Moving to the new stack.");
    
    	foo = move_stack(stack_bot, &function_in_new_stack);
    
    	printf("Function worked: 0x%lx %c\n", foo, foo);
    	printf("Cur. stack ptr: 0x%lx\n", (size_t) &foo);
    
    	puts("Freeing the stack.");
    	free(stack);
    }
    .globl move_stack
    move_stack:
    	/* Tyto registry zachováváme. */
    	pushq %rbx
    	pushq %r12
    	pushq %r13
    	pushq %r14
    	pushq %r15
    
    	/* V %rdi je spodek nového stacku, v %rsi funkce k zavolání. */
    
    	/* Poznamenáme si starou adresu stacku. */
    	mov %rsp, %rbx
    
    	/* Přejdeme do nového stacku. */
    	movq %rdi, %rsp
    
    	/* Adresu uložíme na nový stack. */
    	pushq %rbx
    
    	call %rsi
    
    	/* Vrátíme se zpět. */
    	popq %rsp
    
    	/* Uklidíme po sobě. */
    	popq %r15
    	popq %r14
    	popq %r13
    	popq %r12
    	popq %rbx
    
    	/* Vrátíme 'Y' jako návratovou hodnotu. */
    	movq $0x59, %rax
    
    	ret
    
    Funkce move_stack zavolá funkci s daným stackem. Funguje to – viz výstup. Pokud nastavím CHARS na příliš velkou hodnotu (nový stack má 4k), spadne to na SIGSEGV, takže se používá nový stack.
    .sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky.
    Pendrekama do nich❗ avatar 21.7.2021 12:12 Pendrekama do nich❗ | skóre: 43 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: C - procházení souborů

    Založit nové vlákno • Nahoru

    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.