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 01:00 | Komunita

    Debian dnes slaví 32 let. Ian Murdock oznámil vydání "Debian Linux Release" 16. srpna 1993.

    Ladislav Hagara | Komentářů: 15
    15.8. 17:44 | IT novinky

    Policisté zadrželi odsouzeného drogového dealera Tomáše Jiřikovského, který daroval ministerstvu spravedlnosti za tehdejšího ministra Pavla Blažka (ODS) bitcoiny v miliardové hodnotě, a zajistili i darovanou kryproměnu. Zadržení Jiřikovského může být podle ministerstva důležité k rozuzlení kauzy, která vypukla koncem května a vedla ke konci Blažka. Zajištění daru podle úřadu potvrzuje závěry dříve publikovaných právních

    … více »
    Ladislav Hagara | Komentářů: 8
    15.8. 13:44 | IT novinky

    Administrativa amerického prezidenta Donalda Trumpa jedná o možném převzetí podílu ve výrobci čipů Intel. Agentuře Bloomberg to řekly zdroje obeznámené se situací. Akcie Intelu v reakci na tuto zprávu výrazně posílily. Trump minulý týden označil Tana za konfliktní osobu, a to kvůli jeho vazbám na čínské společnosti, čímž vyvolal nejistotu ohledně dlouholetého úsilí Intelu o obrat v hospodaření. Po pondělní schůzce však prezident o šéfovi Intelu hovořil příznivě.

    Ladislav Hagara | Komentářů: 3
    15.8. 05:44 | IT novinky

    Společnost Purism stojící za linuxovými telefony a počítači Librem má nově v nabídce postkvantový šifrátor Librem PQC Encryptor.

    Ladislav Hagara | Komentářů: 10
    14.8. 18:00 | Nová verze

    VirtualBox, tj. multiplatformní virtualizační software, byl vydán v nové verzi 7.2. Přehled novinek v Changelogu. Vypíchnou lze vylepšené GUI.

    Ladislav Hagara | Komentářů: 0
    14.8. 14:11 | IT novinky

    Eric Migicovsky, zakladatel společnosti Pebble, v lednu oznámil, že má v plánu spustit výrobu nových hodinek Pebble s již open source PebbleOS. V březnu spustil předprodej hodinek Pebble Time 2 (tenkrát ještě pod názvem Core Time 2) za 225 dolarů s dodáním v prosinci. Včera představil jejich konečný vzhled (YouTube).

    Ladislav Hagara | Komentářů: 31
    14.8. 12:44 | Zajímavý software

    Byla oznámena nativní podpora protokolu ACME (Automated Certificate Management Environment) ve webovém serveru a reverzní proxy NGINX. Modul nginx-acme je zatím v preview verzi.

    Ladislav Hagara | Komentářů: 1
    14.8. 12:22 | Nová verze

    Vývojáři KDE oznámili vydání balíku aplikací KDE Gear 25.08. Přehled novinek i s náhledy a videi v oficiálním oznámení.

    Ladislav Hagara | Komentářů: 0
    13.8. 11:55 | IT novinky

    Společnost Perplexity AI působící v oblasti umělé inteligence (AI) podala nevyžádanou nabídku na převzetí webového prohlížeče Chrome internetové firmy Google za 34,5 miliardy dolarů (zhruba 723 miliard Kč). Informovala o tom včera agentura Reuters. Upozornila, že výše nabídky výrazně převyšuje hodnotu firmy Perplexity. Společnost Google se podle ní k nabídce zatím nevyjádřila.

    Ladislav Hagara | Komentářů: 5
    13.8. 04:33 | Bezpečnostní upozornění

    Intel vydal 34 upozornění na bezpečnostní chyby ve svých produktech. Současně vydal verzi 20250812 mikrokódů pro své procesory řešící 6 bezpečnostních chyb.

    Ladislav Hagara | Komentářů: 0
    Kolik tabů máte standardně otevřeno ve web prohlížeči?
     (52%)
     (19%)
     (4%)
     (5%)
     (2%)
     (1%)
     (1%)
     (17%)
    Celkem 406 hlasů
     Komentářů: 23, poslední 4.8. 13:01
    Rozcestník

    Dotaz: Identifikace vstupu aplikace

    1.5.2011 17:17 keporkak
    Identifikace vstupu aplikace
    Přečteno: 304×
    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.