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 15:00 | Zajímavý článek

    Byl publikován přehled vývoje renderovacího jádra webového prohlížeče Servo (Wikipedie) za uplynulé dva měsíce. Servo zvládne už i Gmail. Zakázány jsou příspěvky generované pomocí AI.

    Ladislav Hagara | Komentářů: 5
    9.5. 17:22 | Nová verze

    Raspberry Pi Connect, tj. oficiální služba Raspberry Pi pro vzdálený přístup k jednodeskovým počítačům Raspberry Pi z webového prohlížeče, byla vydána v nové verzi 2.5. Nejedná se už o beta verzi.

    Ladislav Hagara | Komentářů: 1
    9.5. 15:22 | Komunita

    Google zveřejnil seznam 1272 projektů (vývojářů) od 185 organizací přijatých do letošního, již jednadvacátého, Google Summer of Code. Plánovaným vylepšením v grafických a multimediálních aplikacích se věnuje článek na Libre Arts.

    Ladislav Hagara | Komentářů: 0
    8.5. 19:22 | Nová verze

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

    Ladislav Hagara | Komentářů: 0
    8.5. 18:00 | Nová verze

    Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána v nové verzi 2025.5.

    Ladislav Hagara | Komentářů: 0
    8.5. 01:22 | Nová verze Ladislav Hagara | Komentářů: 0
    8.5. 00:55 | Zajímavý projekt

    PyXL je koncept procesora, ktorý dokáže priamo spúštat Python kód bez nutnosti prekladu ci Micropythonu. Podľa testov autora je pri 100 MHz približne 30x rýchlejší pri riadeni GPIO nez Micropython na Pyboard taktovanej na 168 MHz.

    vlk | Komentářů: 0
    7.5. 19:44 | Nová verze

    Grafana (Wikipedie), tj. open source nástroj pro vizualizaci různých metrik a s ní související dotazování, upozorňování a lepší porozumění, byla vydána ve verzi 12.0. Přehled novinek v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    7.5. 17:33 | Nová verze

    Raspberry Pi OS, oficiální operační systém pro Raspberry Pi, byl vydán v nové verzi 2025-05-06. Přehled novinek v příspěvku na blogu Raspberry Pi a poznámkách k vydání. Pravděpodobně se jedná o poslední verzi postavenou na Debianu 12 Bookworm. Následující verze by již měla být postavena na Debianu 13 Trixie.

    Ladislav Hagara | Komentářů: 0
    7.5. 05:33 | Komunita

    Richard Stallman dnes v Liberci přednáší o svobodném softwaru a svobodě v digitální společnosti. Od 16:30 v aule budovy G na Technické univerzitě v Liberci. V anglickém jazyce s automaticky generovanými českými titulky. Vstup je zdarma i pro širokou veřejnost.

    Ladislav Hagara | Komentářů: 17
    Jaký filesystém primárně používáte?
     (57%)
     (1%)
     (8%)
     (22%)
     (4%)
     (2%)
     (3%)
     (1%)
     (1%)
     (3%)
    Celkem 579 hlasů
     Komentářů: 26, poslední 8.5. 09:58
    Rozcestník

    Dotaz: Identifikace vstupu aplikace

    1.5.2011 17:17 keporkak
    Identifikace vstupu aplikace
    Přečteno: 302×
    Dobry den,

    dejme tomu, ze spustim nejaky linuxovy prikaz, ktery ceka svuj vstup z konzole, napr:
    wc -l
    
    Je nyni standardni vstup tohoto prikazu nejak v systemu identifikovan? Jde mi o, ze nyni potrebuju z jineho okna konzole z jineho programu (sveho napsaneho v C) poslat bezici aplikaci (zde wc -l) nejaka data.

    Je toto mozne?

    Odpovědi

    1.5.2011 17:28 YYY | skóre: 29 | blog: martinek
    Rozbalit Rozbalit vše Re: Identifikace vstupu aplikace
    Zkusil bych toto:
    echo "data" > /proc/PID_PROGRAMU/fd/0
    1.5.2011 17:46 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Identifikace vstupu aplikace
    K tomu slouží pojmenované roury – podívejte se např. na příkaz mkfifo. Příkazu wc -l řeknete, že má číst z dané pojmenované roury, a jiným programem pak do ní můžete zapisovat.
    1.5.2011 18:14 keporkak
    Rozbalit Rozbalit vše Re: Identifikace vstupu aplikace
    Dekuji, za odpovedi, obe moznosti by asi sly, ale trochu konkretizuji svuj problem.

    Jde mi o to spustit program john (http://www.openwall.com/john/) ve vice instancich (napriklad dva, tak aby kazdy bezel na jednom procesoru), tak aby prijimal slova, ze kterych dela hashe ze std. vstupu, tedy s parametrem --stdin.

    Ja bych si potom naprogramoval jednoduchou aplikaci v C, ktera by slova ze slovniku nastridacku zasilala obema instancim a ty tedy zaroven zpracovavaly slova.

    Problem je ten, ze pokud aplikaci (at uz vyse zminene wc -l nebo john) poslu na std. vstup retezce, aplikace svoji cinnost nevykona dokud nedojde ke stisknu CTRL+D. Az pak se aplikace "probere", zpracuje svuj buffer a ukonci se. A ja prave nechci aby se ukoncila, potrebuji, aby retezce zpracovala prubezne.

    Doufam, ze jsem alespon trochu srozumitelne vysvetlil, o co se snazim. Jde toto nejakym zpusobem vyresit?
    2.5.2011 15:56 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Identifikace vstupu aplikace
    To záleží na způsobu práce aplikace. wc -l musí počkat na ukončení vstupu, protože počítá počet řádek v celém vstupu. Jediná možnost je spustit wc -l pro každý vstup znova.
    2.5.2011 15:59 me vakérav
    Rozbalit Rozbalit vše Re: Identifikace vstupu aplikace
    Tak jak píšeš by to mělo fungovat. Problém asi bude v tom, že když to zkoušíš na malých datech, zůstanou viset v nějakém cache bufferu, dokud se nezaplní nebo se roura neukončí. Na malých datech se buffer samozřejmě nezaplní a při skončení roury skončí i program.

    Zkus to na větších datech a prostě tam ta data rvi. Je jasné, že johni budou trochu zpožděni oproti tomu, co tam posíláš, ale to je správně - to je prostě cache, která je nutná jednak kvůli efektivitě a jednak kvůli lepší paralelizaci (každý má svojí rezervu nezávislou na předchozím a dalším programu v rouře).
    3.5.2011 12:30 keporkak
    Rozbalit Rozbalit vše Re: Identifikace vstupu aplikace
    Zkousel jsem tam do nej takto vysypat asi 14MB slov (kazde na radku), ale chova se to stale stejne, porad visi v konzoli a ceka na stisk CTRL+D. Nemuzu to cachovani nejakym zpusobem potlacit? Pripadne po nejakych intervalech vynutit zpracovani teto cache?
    3.5.2011 17:49 l4m4
    Rozbalit Rozbalit vše Re: Identifikace vstupu aplikace
    Pokud dělá program jakoukoli celkovou analýzu vstupu - wc ji dělá určitě, je to jeho jediný účel, john ji dělá dost pravděpodobně - tak může přejít do další fáze až po té analýze. Takže wc něco vcelku logicky vypíše, až dostane ten vstup celý a ví, kolik je řádků, ale ty řádky počítá průběžně, jakmile se mu naplní vstupní buffer. To lze snadno ověřit (trasováním, nebo i jen v topu). Některým programům lze říci, aby zpracovávaly vstup po řádcích, nevím, zda tak lze nastavit jonh, nejspíš by to mělo negativní vliv na efektivitu.
    3.5.2011 21:12 keporkak
    Rozbalit Rozbalit vše Re: Identifikace vstupu aplikace
    Ted jsem jeste zkousel john, ale podle me se chova stejne jako wc, tedy ze cely vstup bufferuje a vypocet provede az po stisku CTRL+D.

    Celou situaci tedy muzu ukazat pouze na wc:

    Standardne se chova takto:
    wc -l
    prvni radek
    druhy radek
    treti radek
    [stisk CTRL+D]
    3
    
    Ja bych ho vsak potreboval prinutit fungovat takto:
    wc -l
    prvni radek
    1
    druhy radek
    2
    treti radek
    3
    ...
    Tedy zpracovavat zvlast kazdy radek vstupu. Vyresit to ale nejak obecne (ne jen nejakym parametrem pokud existuje) abych to same mohl aplikovat i na john.

    Pro uplnost jeste dodam, ze john na toto zadny option nema.
    3.5.2011 22:17 l4m4
    Rozbalit Rozbalit vše Re: Identifikace vstupu aplikace
    Takže ještě jednou:

    * wc nebufferuje celý vstup.

    * bufferovat celý vstup není totéž co přečíst celý vstup (wc dělá jen to druhé).

    * obecně to vyřešit nejde, protože program může potřebovat přečíst celý vstup.

    Pokud zpracování jednoho řádku trvá programu tak dlouho a zároveň nechceš využít toho, že program může pracovat efektivněji po načtení celého vstupu, tak spouštěj program na každý řádek zvlášť, to je jedná obecná možnost.
    2.5.2011 15:42 keporkak
    Rozbalit Rozbalit vše Re: Identifikace vstupu aplikace
    Jde toto nejakym zpusobem zrealizovat?
    3.5.2011 12:42 Sten
    Rozbalit Rozbalit vše Re: Identifikace vstupu aplikace
    A proč tu aplikaci chcete spouštět někde stranou a potom jí lézt do standardního vstupu? Nejjednodušší řešení je vytvořit rouru (funkcí pipe), udělat fork, v dítěti čtecí stranu roury namapovat na stdin (funkcí dup2), pomocí execve spustit požadovanou aplikaci a v rodiči do zapisovací strany roury posílat slova. Přesně tak, jak to dělá shell.
    3.5.2011 15:42 keporkak
    Rozbalit Rozbalit vše Re: Identifikace vstupu aplikace
    To zni velice zajimave, bohuzel nejsem prilis sbehly v jazyce C. Byl by prosim nekdo tak hodny a hodil sem nejakou kostru/priklad, jak to konkretneji udelat?
    3.5.2011 17:51 l4m4
    Rozbalit Rozbalit vše Re: Identifikace vstupu aplikace
    Z toho, co napsal Sten, je nejdůležitejší to ,přesně tak, jak to dělá shell`. Bude to se to chovat úplně stejně.
    3.5.2011 20:57 keporkak
    Rozbalit Rozbalit vše Re: Identifikace vstupu aplikace
    Ehm, to nejak nechapu, budu tedy programovat v C vyuzitim funkci, co psal Sten nebo mam nejak pouzit shell (bash)?
    3.5.2011 22:18 l4m4
    Rozbalit Rozbalit vše Re: Identifikace vstupu aplikace
    Je to úplně jedno, chování bude stejné.

    Klidně to sem napíšu i potřetí...

    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.