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

    dnes 02:11 | Komunita

    V srpnu společnost HashiCorp přelicencovala "své produkty" Terraform, Packer, Vault, Boundary, Consul, Nomad a Waypoint z MPL a Vagrant z MIT na BSL (Business Source License). V září byl představen svobodný a otevřený fork Terraformu s názvem OpenTofu. Na konferenci Open Source Summit Japan 2023 byl představen (YouTube) svobodný a otevřený fork Vaultu s názvem OpenBao (GitHub).

    Ladislav Hagara | Komentářů: 0
    včera 21:44 | Komunita

    Na dnes plánované vydání Debianu 12.3 bylo posunuto. V jádře 6.1.64-1 v souborovém systému ext4 je chyba #1057843 vedoucí k možnému poškození dat.

    Ladislav Hagara | Komentářů: 1
    včera 14:11 | Komunita

    Na čem aktuálně pracují vývojáři GNOME a KDE? Pravidelný přehled novinek i s náhledy aplikací v Týden v GNOME a Týden v KDE.

    Ladislav Hagara | Komentářů: 0
    včera 03:11 | Humor

    Tak od ledna linuxové terminály, výchozí pozadí i celé desktopy v barvě "broskvového chmýří", v barvě "jejíž všeobjímající duch obohacuje mysl, tělo i srdce". Barvou roku 2024 je PANTONE 13-1023 Peach Fuzz.

    Ladislav Hagara | Komentářů: 7
    8.12. 21:44 | Nová verze

    Byla vydána verze 10 linuxové distribuce Freespire (Wikipedie). Jedná se o bezplatnou linuxovou distribuci vyvíjenou společností PC/OpenSystems LLC stojící za komerční distribucí Linspire (Wikipedie), původně Lindows.

    Ladislav Hagara | Komentářů: 2
    8.12. 15:44 | Bezpečnostní upozornění

    Binarly REsearch před týdnem informoval o kritických zranitelnostech UEFI souhrnně pojmenovaných LogoFAIL. Tento týden doplnil podrobnosti. Útočník může nahradit logo zobrazováno při bootování vlastním speciálně upraveným obrázkem, jehož "zobrazení" při bootování spustí připravený kód. Pětiminutové povídání o LogoFAIL a ukázka útoku na YouTube.

    Ladislav Hagara | Komentářů: 3
    8.12. 00:11 | Nová verze

    Byla vydána listopadová aktualizace aneb nová verze 1.85 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Ve verzi 1.85 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 24
    7.12. 13:33 | Komunita Ladislav Hagara | Komentářů: 2
    7.12. 13:22 | Komunita

    Richard Hughes na svém blogu oznámil, že počet aktualizací firmwarů pomocí služby LVFS (Linux Vendor Firmware Service) přesáhl 100 milionů. Přehled podporovaných zařízení, nejnovějších firmwarů nebo zapojených výrobců na stránkách LVFS.

    Ladislav Hagara | Komentářů: 0
    7.12. 12:55 | Nová verze

    Byla vydána nová stabilní verze 3.19.0, tj. první z nové řady 3.19, minimalistické linuxové distribuce zaměřené na bezpečnost Alpine Linux (Wikipedie) postavené na standardní knihovně jazyka C musl libc a BusyBoxu. Z novinek lze vypíchnou podporu Raspberry Pi 5.

    Ladislav Hagara | Komentářů: 0
     (42%)
     (10%)
     (48%)
    Celkem 107 hlasů
     Komentářů: 2, poslední 6.12. 22:12
    Rozcestník

    Dotaz: C, nebo C++ a fork

    26.3.2007 20:00 filbar | skóre: 36 | blog: Denicek_programatora | Ostrava
    C, nebo C++ a fork
    Přečteno: 2206×
    Nevíte někdo jak vytvořit v C/C++ fork tak, aby jeden rodič měl dva potomky? Zkouším to na něčem jako toto:
    #include <stdio.h>
    #include <sys/types.h>
    #include <unistd.h>
    #include <sys/wait.h>
    
    
    int main() {
            int roura[2];
            pipe(roura);
            int pid=fork();
    
            if(pid != 0) { // rodic
                    close(roura[0]);
                    int a = 10;
                    write(roura[1],&a,sizeof(a));
    //              close(roura[1]);
                    printf("PID rodice: %d\n", getpid());
                    printf("Potomek: %d\n", pid);
                    int pid1=fork();
                    if (pid1 == 0) {
                            int b = 312;
                            write(roura[1],&b,sizeof(b));
                            close(roura[1]);
                            printf("Potomek2-PID rodice: %d\n", getpid());
                            printf("Potomek2-Potomek: %d\n", pid);
                    }
            } else { // potomek
                    close(roura[1]);
                    int a1, b1;
                    read(roura[0],&a1,sizeof(a1));
                    read(roura[0],&b1,sizeof(b1));
                    close(roura[1]);
                    printf("PID potomka: %d\n", getpid());
                    printf("Potomek: %d\n", pid);
                    printf("Soucet císel z roury je %d\n", a1 + b1);
            }
            return 0;
    }
    
    Roury mi fungují, ale nějak mi nesouhlasí PIDY:
    PID rodice: 11731
    Potomek: 11732
    Potomek2-PID rodice: 11733
    Potomek2-Potomek: 11732
    PID potomka: 11732
    Potomek: 0
    Soucet císel z roury je 322
    
    To vypadá jako by měl jeden potomek více rodičů?! Jak to má být správně?

    Odpovědi

    Luboš Doležel (Doli) avatar 26.3.2007 20:55 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: C, nebo C++ a fork
    Máte tam řádný bordel v proměnných, v té větvi s pid1 používáte pid. A navíc v té větvi máte blbě podmínku (pid1 == 0).
    26.3.2007 21:04 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: C, nebo C++ a fork
    Výsledek přesně odpovídá tomu, co jste naprogramoval. První tučný řádek vám ukáže PID původního procesu, druhý tučný řádek PID druhého potomka.

    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.