我正在編寫一個程序,一旦按下按鈕,我必須執行一個服務器進程(只有當我決定殺死他時纔會停止)。
要執行這個過程中,我決定使用fork/execv機制:C++:fork/exec還是pthread?
void Command::RunServer() {
pid = fork();
if (pid==0) {
chdir("./bin");
char str[10];
sprintf(str,"%d",port);
char *argv[] = {"./Server", str};
execv("./Server",argv);
}
else {
config->pid = pid;
return;
}
}
而且在方法「按鈕按下」,我做的:
command->RunServer();
它似乎很好的工作了幾天前...現在我得到錯誤:
main: xcb_io.c:221: poll_for_event: Assertion `(((long) (event_sequence) - (long) (dpy->request)) <= 0)' failed.
我應該嘗試切換到pthread嗎?我做了什麼壞事?
感謝,
EO
說'的char * argv的[] = { 「./Server」,STR,NULL};' – 2012-07-19 08:28:56
不會改變任何東西... – eouti 2012-07-19 08:46:45
哦,是對不起它改變了什麼。 'ps'中的過程描述現在是乾淨的,之前有很多參數非常難看。 – eouti 2012-07-19 09:05:49