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 17:52 | Zajímavý projekt
    WorldTUI je experimentální LLM o 360 milionech parametrů, který napodobuje terminál. Podle stisknutých kláves se snaží předpovídat změny na obrazovce a zvládá tak vyonávat rozličné příkazy, například Vim, tmux i jednoduchou hru Snake. Nejedná se o skutečný příkazový řádek, jeho 'soubory' i příkazy jsou pouze simulované a model může samozřejmě různě chybovat. WorldTUI vychází z jazykového modelu Qwen2.5-Coder-0.5B, který autor … více »
    👻 | Komentářů: 2
    včera 17:48 | Zajímavý článek
    Josef Bacik navrhuje novou abstrakci cell, která by celý kontejner reprezentovala jako jeden kernelový objekt. Proces by vznikl přímo uvnitř cell a nemohl by ji opustit. Oprávnění ke správě by se odvozovala od držení cellfd. … více »
    vencour | Komentářů: 9
    včera 16:23 | Bezpečnostní upozornění

    Zranitelnost v aktualizačním mechanismu WordPress umožňuje útočníkovi zasáhnout do dočasného instalačního adresáře během aktualizace jádra systému. Před aktualizací veřejně dostupného WordPressu dočasně zablokovat HTTP přístup k wp-content/upgrade/, následně aktualizovat a zkontrolovat logy. Postižené verze: WordPress 4.7 až 7.1.3.

    vencour | Komentářů: 1
    včera 16:11 | Bezpečnostní upozornění

    Alpine Linux zveřejnil podrobnosti o útoku na svůj GitLab a 30. října oznámil obnovení provozu. Útočník se 20.–21. října pokusil zneužít chybu v regulárních výrazech. Exploit způsobil opakované pády workerů a několikrát se dostal do pokročilé fáze. Úspěšné spuštění kódu však nebylo potvrzeno. Fix: Opravený GitLab a současně Ruby 3.3.13, 3.4.12 nebo 4.0.9+, pokud jde o vlastní sestavení či kontejner.

    vencour | Komentářů: 1
    včera 15:44 | Pozvánky

    Konference OpenAlt 2026 proběhne tento víkend 7. a 8. listopadu na FIT VUT v Brně. Jedná se již o 21. ročník této konference, která propojuje otevřené technologie, svobodný software, hardware a lidi, kteří chtějí věci nejen používat, ale také jim rozumět a měnit je k lepšímu. Více o konferenci v příspěvku OpenAlt 2026: technologie, které dávají svobodu na blogu spolku OpenAlt.

    Ladislav Hagara | Komentářů: 1
    včera 15:22 | IT novinky

    Eben Upton oznámil další zdražení jednodeskových počítačů Raspberry Pi. Tentokrát 16 GB varianty Raspberry Pi o 80 dolarů a 16 GB varianty Raspberry Pi Compute Module 5 o 40 dolarů. Cena Raspberry Pi 500+ se nemění.

    Ladislav Hagara | Komentářů: 0
    včera 15:11 | IT novinky

    Francouzské Národní shromáždění přijalo 30. října 2026 poměrem 11 hlasů pro, 10 proti a 14 abstencí pozměňovací návrh I-1358 ke státnímu rozpočtu na rok 2027, který zavádí daň z objemu dat doručovaných uživatelům internetu. Návrh socialistického poslance Laurenta Lhardita stanovuje sazbu 0,055 eura za gigabajt, tedy 55 eur za terabajt. Zatím nejde o platný zákon, ale o dílčí hlasování během prvního čtení rozpočtu. Daň by měli platit

    … více »
    vencour | Komentářů: 9
    1.11. 12:44 | IT novinky

    Nizozemská vláda ve snaze šetřit a zvyšovat efektivitu s využitím umělé inteligence (AI) hodlá zrušit asi 25.000 pracovních míst ve státní správě. Cílem je postupně dosáhnout ročních úspor až 3,5 miliardy eur (85,2 miliardy Kč). Na konci loňského roku ve státní správě pracovalo rekordních 160.000 lidí. „Nemůžeme pokračovat v tom, co jsme dělali dosud,“ uvedl státní tajemník pro efektivní fungování vlády Eric van den Burg. „Proto

    … více »
    Ladislav Hagara | Komentářů: 40
    1.11. 12:00 | IT novinky

    Příspěvek na blogu PRUSA 3D představuje fotoaparát CAIM1 (Counter Artificial Intelligence Machine 1). Uměle vytvořený obsah je každým dnem těžší rozeznat od skutečných záběrů či fotografií, což podrývá důvěryhodnost žurnalistiky, archivních materiálů i každodenní tvorby obsahu. Fotoaparát CAIM1 byl vyvinut právě k tomu, aby ověřoval původ fotografií a videí přímo během jejich pořizování. Uvnitř fotoaparátu se nachází hardwarová Web3 peněženka se zabezpečovacím čipem Tropic Square TROPIC01.

    Ladislav Hagara | Komentářů: 9
    1.11. 00:11 | Nová verze

    Jonathan Thomas oznámil vydání nové verze 4.1 video editoru OpenShot (Wikipedie). Zdrojové kódy OpenShotu jsou k dispozici na GitHubu. Ke stažení je i balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo na spouštění a spustit.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (20%)
     (30%)
     (9%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2967 hlasů
     Komentářů: 34, poslední 26.10. 08:24
    Rozcestník

    Dotaz: C posielanie argumentov cez argv aj stdin

    29.1.2010 23:13 mato
    C posielanie argumentov cez argv aj stdin
    Přečteno: 853×
    cafte,
    mam program, ktoremu posielam argumenty cez argv, teda:
    int main(int argc, char** argv)
    {
       // spracovanie argv
    }
    
    program spustam:
    #./program argv1 argv2 
    
    vsetko funguje ako ma
    problem nastane, ked chcem spustit program tak, ze argument poslem ako vstup cez pipe-u:
    # echo "argv1 argv2" | ./program 
    
    kde sa snazim logiku toho spravit ako:
    int main(int argc, char** argv)
    {
       if (argc < 2)
       {
          char buf[1025];       
          if (!feof(stdin)) 
          {
               fgets(buff, 1024, stdin);
               // spracovanie buffera
          }
          else
          {
                /// print usage && exit
          }
       }
       ...
    
    tak nastane problem, pretoze ak nezadam ziaden parameter (teda pustim program ako ./program) - tak caka na vstup z klavesnice .. moj ciel je, aby ked sa na stdin nic nenachadza (teda ze som ho nespustil pomocou 'echo'), tak program skonci ..

    pls, vedel by ma niekto usmernit ? vdaka


    Řešení dotazu:


    Odpovědi

    Luboš Doležel (Doli) avatar 29.1.2010 23:22 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: C posielanie argumentov cez argv aj stdin
    moj ciel je, aby ked sa na stdin nic nenachadza (teda ze som ho nespustil pomocou 'echo'), tak program skonci ..
    Že to čeká na vstup, to je správné chování. Možností je leda na klávesnici stisknout ^D nebo použít </dev/null
    29.1.2010 23:30 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: C posielanie argumentov cez argv aj stdin

    Problém je v představě, že když progam spustíte "jen tak", tak se na vstupu nic nenachází. Ve skutečnosti program dostane na standardní vstup to, co mu napíšete na terminál; a vy mu to tam můžete napsat třeba po půl hodině, proto čeká. Pokud ho chcete spustit opravdu s prázdným vstupem, musel byste použít např.

      echo -n | ./program
      ./program </dev/null
    

    nebo něco podobného. Tomu, co si představujete, by se částečně blížilo, pokud by se program na začátku podíval, jestli je standardní vstup terminálem (pomocí isatty()), a pokud ano, nečetl by ho. Ale nemyslím si, že tohle je správný způsob, jak psát programy.

    29.1.2010 23:53 mato
    Rozbalit Rozbalit vše Re: C posielanie argumentov cez argv aj stdin
    ano - v tom je problem, read bude cakat, kym sa tam skutocne nieco neobjavi ..

    druhy variant je, ze program bude citat data bud zo stdin alebo file-u, ak ho specifukujem .. vtedy dosiahnem asi najlepsie to, co potrebujem, teda bud:

    # echo "data" | ./program 
    
    alebo
    #./program -f data.dat
    
    chcel som sa vsak spytat ci predsalen neexistuje (cisty/prenositelny) sposob, ako som povodne zmyslal .. zda sa, ze tato druha varianta je asi typickejsia ..
    30.1.2010 00:08 dark
    Rozbalit Rozbalit vše Re: C posielanie argumentov cez argv aj stdin
    Proč to hrotit, udělej si třeba parametr --stdin, kterým specifikuješ, že data předáváš přes stdin, parametr -f můžeš zachovat a když žádné parametry nejsou, tak uděláš tu výchozí akci (asi vypsat možnosti?)
    30.1.2010 00:19 l4m4
    Rozbalit Rozbalit vše Re: C posielanie argumentov cez argv aj stdin
    Nebo prostě spouštěj program
    echo arg arg | xargs program
    pokud to tedy není nějaká domácí úloha...
    30.1.2010 00:37 mato
    Rozbalit Rozbalit vše Re: C posielanie argumentov cez argv aj stdin
    :) nie je to ziadna domaca uloha

    ked to pre tento priklad zjednodusim, nech program robi to, ze na vstupe nacita hexa cisla a prehodi ich na desiatkove .. v praxi cita data zo suboru, pre urcite pripady chcem rucne zadavat slova ja (moja spatna kontrola) .. preto som si urobil moznost rucne zadat cisla cez

    #./program a1 7f .. 
    
    no a zamyslel som sa, ze co keby som to chcel robit sposobom
    # echo "asd" | ./program
    
    a zistil som, ze to neviem vyriesit/dogooglit sa .. preto som sa pytal - v tom spociva moj root cause otazky .. a na to si mi v celku odpovedal - pouzi xargs ..
    30.1.2010 15:30 Andrej Herceg | skóre: 43
    Rozbalit Rozbalit vše Re: C posielanie argumentov cez argv aj stdin
    Veľa programov niečo takéto rieši tak, že sa parameter dá - a program vie, že má čítať dáta zo štandardného vstupu.
    30.1.2010 21:23 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: C posielanie argumentov cez argv aj stdin
    To se ale typicky používá tam, kde je parametrem soubor, ze kterého se má vstup číst.
    30.1.2010 22:41 Andrej Herceg | skóre: 43
    Rozbalit Rozbalit vše Re: C posielanie argumentov cez argv aj stdin
    Podľa popisu ten jeho súbor pracuje aj so súbormi (takže upraviť to by asi nebolo až tak zložité).
    30.1.2010 22:52 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: C posielanie argumentov cez argv aj stdin

    Upravit ano, ale pomlčková konvence standardně funguje tak, že je ekvivalentní

      cmd file
      cmd - <file
    

    zatímco v tomto případě by mělo být ekvivalentní

      cmd xyz
      echo xyz | cmd -
    

    což by IMHO bylo dost matoucí pro ty, kdo jsou zvyklí na používání pomlčky v tom tradičním významu.

    30.1.2010 01:10 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: C posielanie argumentov cez argv aj stdin
    chcel som sa vsak spytat ci predsalen neexistuje (cisty/prenositelny) sposob, ako som povodne zmyslal .. zda sa, ze tato druha varianta je asi typickejsia ..

    Ale na to už jsem vám odpověděl - pokud vám nevadí, že nebudete moci zadat parametry interaktivně z terminálu, můžete použít isatty() pro rozlišení, jestli je standardní vstup terminálem.

    30.1.2010 01:33 mato
    Rozbalit Rozbalit vše Re: C posielanie argumentov cez argv aj stdin
    skusal som na rychlo:
    int main(int argc, char** argv)
    {
            if (isatty(1))
                    printf ("is terminal.\n");
            else
                    printf ("not a terminal.\n");
    ..
    
    mi spusteny kod:
    #./program a1
    is terminal.
    #
    
    # echo "ea" | ./program
    is terminal.
    #
    
    je mozne, ze ta nechapem presne ako to mam pouzit .. pozrem este po googli examples na isatty(), rano budem (hadam) mudrejsi ..
    30.1.2010 02:31 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: C posielanie argumentov cez argv aj stdin
    Deskriptor číslo 1 je standardní výstup, standardní vstup má číslo 0. Čistší je místo čísla použít STDIN_FILENO, pak se nespletete.
    30.1.2010 10:42 mato
    Rozbalit Rozbalit vše Re: C posielanie argumentov cez argv aj stdin
    ach, toto mi vcera do hlavy neudrelo
    je presne ono - takto by sa to teda dalo osetrit. ako som spominal, toto je uz viac moja zvedavost, necham to pravdepodobne na citanie z fileu a cez stdin .. je fajn ale vediet, ze existuje aj takyto sposob.

    dakujem za radu.

    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.