一道操作系统进程调度的题
#include <sys/types.h>
#include <stdio.h>
#include <unistd.h>
#include <pthread.h>
int glob=1;
void* do_some(void* data)
{
int *num = (int*)data;
printf("Start thread\n");
printf("Num = [%d]\n", *num);
printf("End thread\n");
pthread_exit(NULL);
}
void main(void)
{
int var;
pid_t pid;
var = 1;
pthread_t p_thread;
int ret;
int a = 21;
printf("Start fork\n");
if ( (pid = fork()) < 0)
{
printf("fork error\n");
}
else if (pid == 0)
{
glob++;
var++;
ret = pthread_create(&p_thread, NULL, do_some, (void*)&a);
}
else
sleep(2);
printf("glob = [%d], var = [%d]\n", glob, var);
}
这个程序的输出结果是什么???