0
當我寫類似下面的程序:問題用fork()在GTK +程序
GtkWidget *pbar1, pbar2;
ginit update_p_bar(gpointer pbar)
{
// get the value of process bar *pabr*, add it by 0.05, then set the
// process bar's value to the new value
}
void fork_me(GtkWidget *widget, gpointer data)
{
pid_t pid;
if((pid = fork()) < 0){
fprintf(stdout, "fork() error");
exit(1);
}
else if(pid == 0){
gtk_timeout_add(100, update_p_bar, pbar2);
}
else{
gtk_timeout_add(100, update_p_bar, pbar1);
}
}
int main(int argc, char *argv[])
{
gtk_init (&argc, &argv);
// create a new window, add two process bar *pbar1*, *pbar2* and
// a button *button* to it.
// connect *button* with function *fork_me*
gtk_widget_show_all(window);
gtk_main();
}
我想要做的是顯示在同一時間兩個處理吧增加。
但是當我運行它,它說:
程序「進程」得到× Window系統錯誤。這可能是 反映了程序中的錯誤。 錯誤是'BadIDChoice(爲此 連接選擇的無效 資源ID)'。
和
程序 '過程' 接收到的X 窗口系統錯誤。這可能是 反映了程序中的錯誤。 錯誤是'BadDrawable(無效Pixmap 或Window參數)'。
我的程序出了什麼問題?