单选题
8.
UNIX操作系统中,fork()系统调用用于创建进程。仔细阅读、分析下列程序,假设程序正确运行并创建子进程成功,那么输出到屏幕的正确结果是______。
int main()
{
pid_t pid
pid=fork();
if(pid==0) printf("hh\n");
else if(pid>0)printf("hh\n");
else printf("hh\n");
}
A、
1行hh
B、
2行hh
C、
3行hh
D、
什么都没有
【正确答案】
B
【答案解析】
fork()函数执行的特点是,只被调用一次,却会返回两次,一次是在调用进程(父进程)中,一次是在新创建的子进程中。在父进程中,fork()返回子进程的pid。在子进程中,fork()返回0。否则出错返回-1。假设程序正确运行并创建子进程成功,那么,子进程中pid得到返回值为0,父进程中pid得到返回值为子进程号,父进程执行一次输出,子进程执行一次输出,故输出2行hh。因此,本题答案选择B选项。
提交答案
关闭