pid von aufgerufenem prozess erfragen ?
-
hallo,
habe folgendes probelem :
mein programm startet und beendet ab und zu prozesse.
so , einen prozess per system(); zu starten ist ja kein problem,
jedoch brauche ich die pid von ihm. auf den zustartenden prozess ( halflifeserver ) habe ich keinen einfluss.
habe jetzt echt keinen plan wie ich meinen schönen hlds ( hl-server )
dazu bewegen soll mir seine pid mitzuteilen, ohne dass mein programm
die ganze zeit an dem prozess "klebt".wenn jemand ne idee hätte wäre cool.
weiß, dass es scheiße formuliert is// maSta
-
wenn du schon ueber system() gehst, koenntest du nach einer bestimmten wartezeit system() mit sowas wie "ps -e|grep hlds" starten. daraus muesstest du dann die pid rausholen koennen.
-
*hust*
man pidof
edit: btw, wieso man die Funktion system meiden soll
[ Dieser Beitrag wurde am 27.04.2003 um 00:39 Uhr von nman editiert. ]
-
Ich würde es mit fork() und exec*() machen.
pit_t pid = fork(); if( pid==0 ) { // child execl("...", ...); } else { cout<<"Prozess hat pid: "<<pid<<endl; wait(0); }
Da haste dein pid, und sogar das system() ist verschwunden.