Toon posts:

[c++ linux] extern (console) prog starten + output monitoren

Pagina: 1
Acties:

Verwijderd

Topicstarter
Beste mensen,

Sinds een week ben ik aan het prutsen met C++ (in KDevelop en QtDesigner), omdat ik graag een KDE-applicatie wil proberen te schrijven (gewoon een testprojectje om mezelf C++ te leren). Ik heb al wat ervaring met Java, dus het object-georienteerde zit er wel een beetje in, maar nu zit ik met het volgende probleem: ik wil een extern (console-based) programma opstarten en daarvan de output monitoren. Ik kan met een gewone
code:
1
std::system("ls -la > /tmp/dirlist.txt");

een directory listing opslaan in een bestand, en dat bestand vervolgens regel voor regel analyseren, maar dit is (naar mijn mening) een slordige methode. Ik kan namelijk niet een proces monitoren dat 10 minuten draait, ik kan slechts achteraf bekijken (na die 10 minuten) wat er tussendoor gebeurt.
Misschien maakt het de vraag duidelijker als ik vertel dat ik een GUI probeer te schrijven voor een console-app. Dus: hoe monitor ik de output van een console-app "realtime"?

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 10:24

.oisyn

Moderator Devschuur®

Demotivational Speaker

fork (), pipe () en exec () :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • _Squatt_
  • Registratie: Oktober 2000
  • Niet online
Als je een Qt (of KDE) programma maakt, kun je ook gebruik maken van QProcess (danwel KProcess).

Die nemen je aardig wat werk uithanden. Als je het zelf wilt schrijven zijn de manpages van de functies die .oisyn noemt waarschijnlijk wel een goed beginpunt.

"He took a duck in the face at two hundred and fifty knots."


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 09-04 22:08
popen( ) toch?

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • Robtimus
  • Registratie: November 2002
  • Laatst online: 09:46

Robtimus

me Robtimus no like you

Verwijderd schreef op 29 maart 2004 @ 22:39:
...Ik heb al wat ervaring met Java, dus het object-georienteerde zit er wel een beetje in...
Ik hoop dat je er wel van bewust bent dat je nu zelf gealloceerd geheugen moet vrijmaken?

More than meets the eye
There is no I in TEAM... but there is ME
system specs


Verwijderd

Topicstarter
IceManX schreef op 30 maart 2004 @ 14:13:
[...]
Ik hoop dat je er wel van bewust bent dat je nu zelf gealloceerd geheugen moet vrijmaken?
Hmmm... ja, half... Ik weet niet precies wanneer ik dat moet doen. Moet dat als je expliciet geheugen voor een variabele declareerd, of moet je dat ook doen als je bij wijze van spreken:
code:
1
string mijnString = "bladiebla";


in je code hebt staan?

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 09-01 11:25

D2k

ik heb ooit es wat code gepost die zoiets doet.
es ff zoeken of ik dat nog trug kan vinden.

Doet iets met Cloud (MS/IBM)


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 10:24

.oisyn

Moderator Devschuur®

Demotivational Speaker

Toen was je de rotste idd nog niet :+

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 09-01 11:25

D2k

.oisyn schreef op 30 maart 2004 @ 19:05:
Toen was je de rotste idd nog niet :+
toen niet nee :+
[18:06:07] <@D2k> sphere: zweet bloed en tranen gekost die kutcode
[18:06:10] <@D2k> dat vergeet je niet
[18:06:10] <@D2k> :+

Doet iets met Cloud (MS/IBM)


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 09-04 22:08
IceManX schreef op 30 maart 2004 @ 14:13:
[...]
Ik hoop dat je er wel van bewust bent dat je nu zelf gealloceerd geheugen moet vrijmaken?
Nou ja, dat was zo, maar tegenwoordig hebben we daar slimmere dingen voor:
smart pointers zoals boost::shared_ptr en scoped_ptr
std::vector voor dynamische arrays
std::list voor linked lists
etcetera.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Verwijderd

leest deze faq!

http://www.parashift.com/c++-faq-lite/

staat boordevol nuttige info over c++, gaat ook meteen in op WAAROM dingen goed of slecht zijn.

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 10:24

.oisyn

Moderator Devschuur®

Demotivational Speaker

Op wie slaat dat nou :?

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 09-01 11:25

D2k

TS: graag gedaan hoor. :{

Doet iets met Cloud (MS/IBM)

Pagina: 1