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 19:33 | Nová verze

    Společnost Valve aktualizovala přehled o hardwarovém a softwarovém vybavení uživatelů služby Steam. Podíl uživatelů Linuxu dosáhl 3,2 %. Nejčastěji používané linuxové distribuce jsou Arch Linux, Linux Mint a Ubuntu. Při výběru jenom Linuxu vede SteamOS Holo s 26,42 %. Procesor AMD používá 66,72 % hráčů na Linuxu.

    Ladislav Hagara | Komentářů: 0
    dnes 15:22 | IT novinky

    Canonical oznámil (YouTube), že nově nabízí svou podporu Ubuntu Pro také pro instance Ubuntu na WSL (Windows Subsystem for Linux).

    Ladislav Hagara | Komentářů: 0
    dnes 13:11 | IT novinky

    Samsung představil svůj nejnovější chytrý telefon Galaxy Z TriFold (YouTube). Skládačka se nerozkládá jednou, ale hned dvakrát, a nabízí displej s úhlopříčkou 10 palců. V České republice nebude tento model dostupný.

    Ladislav Hagara | Komentářů: 1
    dnes 12:33 | Nová verze

    Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 25.11.1. Přehled novinek v Changelogu.

    Ladislav Hagara | Komentářů: 0
    dnes 04:00 | Nová verze

    Byla vydána nová verze 15.0 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 5
    dnes 03:00 | Nová verze

    UBports, nadace a komunita kolem Ubuntu pro telefony a tablety Ubuntu Touch, vydala Ubuntu Touch 24.04 1.1 a 20.04 OTA-11. Vedle oprav chyb a drobných vylepšení je řešen také středně závažný bezpečnostní problém.

    Ladislav Hagara | Komentářů: 0
    dnes 00:33 | IT novinky Ladislav Hagara | Komentářů: 0
    včera 16:00 | Komunita

    Fedora zve na dvoudenní testování (2. a 3. prosince), během kterého si můžete vyzkoušet nové webové uživatelské rozhraní (WebUI) projektu FreeIPA. Pomozte vychytat veškeré chyby a vylepšit uživatelskou zkušenost ještě předtím, než se tato verze dostane k uživatelům Fedory a celého linuxového ekosystému.

    Ladislav Hagara | Komentářů: 4
    včera 13:22 | IT novinky

    Eben Upton oznámil zdražení počítačů Raspberry Pi, kvůli růstu cen pamětí, a představil 1GB verzi Raspberry Pi 5 za 45 dolarů.

    Ladislav Hagara | Komentářů: 0
    včera 04:44 | Humor

    Linus Torvalds na YouTube kanálu Linus Tech Tips staví dokonalý linuxový počítač.

    Ladislav Hagara | Komentářů: 6
    Jaké řešení používáte k vývoji / práci?
     (34%)
     (47%)
     (19%)
     (18%)
     (23%)
     (16%)
     (24%)
     (16%)
     (18%)
    Celkem 423 hlasů
     Komentářů: 18, poslední dnes 18:34
    Rozcestník

    Dotaz: Implementace roury v C

    4.2.2005 10:17 zn30 | Brno
    Implementace roury v C
    Přečteno: 230×
    Dobrý den, snažím se realizovat v C následující příkaz bashe: ls -al | more. Vycházím z tohoto materiálu: http://osa.dcs.elf.stuba.sk/os/tutorial_c/, našel jsem jej tady v diskuzi. Stále mi to nefunguje (překlad proběhne bez chyb, po spuštění program zůstane viset a nereaguje na nic (kromě ctrl-c)). Kde dělám chybu? Děkuji dopředu.

    Kód:
    int main ()
    {
      int fds[2];
      pid_t pid;
      pid_t pid2;
      
      pipe (fds);
      
      pid = fork ();
      if (pid == (pid_t) 0) 
       {
        close (1);
        dup (fds[1]);
        execlp ("ls", "ls","-al","/usr/include", 0);
       }
      else 
       {
        waitpid (pid, NULL, 0);
        
        pid2=fork();
         
        if (pid2 == (pid_t) 0) 
         {
           close (0);
           dup (fds[0]);
           execlp ("more","more", 0);
         }
        else 
         {waitpid (pid2, NULL, 0);}
       }
      return 0;
    }
    

    Odpovědi

    4.2.2005 11:04 zabza | skóre: 52 | blog: Nad_sklenkou_cerveneho
    Rozbalit Rozbalit vše Re: Implemtace roury v C
    18 řádek, waitpid() navíc (to ls samozřejmě nekončí, dokud si ty data někdo -- ten more -- nepřečte)
    4.2.2005 11:34 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
    Rozbalit Rozbalit vše Re: Implemtace roury v C
    A ten more neskončí, pokud fds[1] budou mít 2-3 procesy otevřený... ;-)
    4.2.2005 11:43 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
    Rozbalit Rozbalit vše Re: Implemtace roury v C
    #include <sys/types.h>
    #include <unistd.h>
    #include <sys/wait.h>
    
    
    int main ()
    {
      int fds[2];
      pid_t pid;
      pid_t pid2;
      
      pipe (fds);
      
      pid = fork ();
      if (pid == (pid_t) 0) 
       {
        close (1);
        dup (fds[1]);
        close (fds[0]);
        close (fds[1]);
        execlp ("ls", "ls","-al","/usr/include", 0);
       }
      else 
       {
        pid2=fork();
         
        if (pid2 == (pid_t) 0) 
         {
           close (0);
           dup (fds[0]);
           close (fds[0]);
           close (fds[1]);
           execlp ("more","more", 0);
         }
        else 
         {
          close (fds[0]);
          close (fds[1]);
          /* FIXME */
          wait (NULL);
          wait (NULL);
         }
       }
      return 0;
    }
    
    +-, moc jsem to nezkoumal.
    4.2.2005 12:00 zn30 | Brno
    Rozbalit Rozbalit vše Re: Implementace roury v C
    Díky moc, už mi to funguje. (Já tam ty "close(fds[x]" různě zkoušel umisťovat, ale dělal jsem to blbě)

    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.