Portál AbcLinuxu, 12. května 2025 05:44

Dotaz: Napojení na konzolu

24.6.2009 10:39 Vojtěch Hejduk
Napojení na konzolu
Přečteno: 196×
Odpovědět | Admin

Zdravím,

snažím se najít nějaký přiměřeně jednoduchý způsob jak se v programu, psaném v C, napojit na linuxovou konzolu, ze které byl program spuštěn. Jedná se o fullscreen aplikaci do které bych chtěl umístit virtuální konzolu pro účely ladění.

Budu vděčný za každý nápad.

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

24.6.2009 11:29 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
Rozbalit Rozbalit vše Re: Napojení na konzolu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jak napojit? Standardni vstup a vystup je defaultne napojen na konzoli, ze ktere byla aplikace spustena.
Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
24.6.2009 11:39 Vojtěch Hejduk
Rozbalit Rozbalit vše Re: Napojení na konzolu

Jde o to ziskat vsechny pripadne hlasky, ktere se zobrazuji v konzole, do programu, pro jejich zobrazeni. Neco podobneho jako maji nektery hry kde se napr. klavesou ~ zobrazi konzola hry, ja bych chtel ale zobrazit vypis hlasek prave ze standardniho vystupu STDOUT a STDERR. Urcite by slo presmerovat vystup programu do souboru, ale chtel bych aby vsechny hlasky sly vyhodnotit v programu a zaroven zobrazit v konzole. Domnivam se ze cesta by mohla vest pres uziti pipe, ale nemam s touto problematikou zkusenosti. Pro upresneni nejedna se o typicke presmerovani vystupu, spise o naklonovani vystupu.

24.6.2009 12:47 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Napojení na konzolu

Jestli to dobře chápu, je třeba odchytávat svá vlastní hlášení ?
Není lepší vyměnit fci „print“ (cout, cerr apod.) za fci která dělá dvě věci zapisuje někam a dělá výpis na stdout nebo stderr.
Je možné vytvořit pojemnovanou rouru viz wiki „named pipe“:
pomocí příkazu mkfifo mujstdout - vznikne na disku a tváří se jako soubor.
a pak lze spusti mojeaplikace > mujstdout
a v aplikaci je možné číst mujstdout jako files (otevřít/přečíst vše/zavřít nebo číst ve smyčce?).
Používám to při ladění konsolové aplikace pomocí „Valgrind“.

  • Vytvořím pojmenovanou pipe
  • Spustím aplikaci přes „valgrind“ a přesměruji výstup do pojemnované pipe
  • A pomocí cat zobrazuji obsah v 2. terminálu
  • A nakonci pojmenovanou pipe smažu

Samozřejmně na to mám skriptík :).

To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
24.6.2009 12:50 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: Napojení na konzolu
Takže ty chceš spustit nový proces a jeho výstupy nenechávat zobrazovat přímo na terminál, ale zpracovávat je programem (ten si pak s nima může dělat co chce, třeba je nakonec i zobrazit)? To řeší přesměrování výstupu do roury (v extrémním případě do virtuálního terminálu), něco podobného (v omezené míře) dělá popen(3)...

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.