- 论坛徽章:
- 0
|
这是开始和停止的回调函数代码,我不知道怎么贴代码格式,不知哪位愿意教给我……
void server_start(GtkWidget *widget, GdkEvent *event,gpointer data)
{
if((newpid = fork()) == -1)
perror("fork");
else if (newpid == 0)
{
execvp("./shs",NULL);
}
else pidrecord = newpid;
g_printf("Server start. Now pidrecord = %d\n",pidrecord);
gtk_label_set_text(GTK_LABEL(label),"Start");
}
void server_stop(GtkWidget *widget, GdkEvent *event, gpointer data)
{
char *kt;
kt = malloc(sizeof(char)*20);
printf("See 1\n");
int i = 0;
printf("See 2\n");
char tempchar[10] = {'0','0','0','0','0','0','0','0','0','0'};
printf("See 3\n");
strcpy(kt,"kill");
printf("Record PID : %d\n",pidrecord);
while(pidrecord != 0)
{
tempchar[9-i-1] = pidrecord % 10+48;
pidrecord /= 10;
i++;
}
tempchar[9] = 0x00;
strcat(kt," ");
strcat(kt,tempchar);
printf("Ready to run: %s\n",kt);
system(kt);
free(kt);
g_printf("Server Stop\n");
gtk_label_set_text(GTK_LABEL(label),"Stop");
return;
} |
|