对于运行UNIX系统的以下程序:void main(){printf("Hellol");fork();printf("He1102");}执行后的输出结果是:( )
【正确答案】 A
【答案解析】解析:fork系统调用的功能是创建一个新的进程,如果不加控制,创建后的子进程和父进程都将执行fork()后面的语句。fork()执行时,对父进程和子进程返回不同的值,对于进程返回0,表示创建成功;对父进程返回大于0的值,表示子进程的pid号,同时UNIX是分时操作系统,父子进程执行的顺序是不确定的,有多种结果。 A对应的情况是子进程创建失败。 D对应的情况是创建成功后,父子进程执行第二个printf语句,同时,由于printf语句没有加上换行符,缓存中的数据不会被马上刷新,子进程继承了父进程的数据,子进程会输出Hello1 Hello2,但是要注意,此处的Hellol并不是说子进程又执行了第一个printf语句。