Portál AbcLinuxu, 12. května 2025 05:44
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.
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.
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“.
cat
zobrazuji obsah v 2. termináluSamozřejmně na to mám skriptík :).
popen(3)
...
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.