Linux下的fork()函数是系统调用不是C语言内置的库函数,这里mark一下笔试面试中常出现的fork()试题。
程序一:
#include "stdio.h"
#include "sys/types.h"
#include "unistd.h"
int main()
{
int i = 0;
for(i = 0; i < 2; i++)
{
fork();
printf("+");
}
return 0;
}
结果中输出8个“+”。
程序二:
#include "stdio.h"
#include "sys/types.h"
#include "unistd.h"
int main()
{
int i = 0;
for(i = 0; i < 2; i++)
{
fork();
printf("+\n"); //注意"\n"
}
return 0;
}
结果中输出6个“+”。
程序三:
#include "stdio.h"
#include "sys/types.h"
#include "unistd.h"
int main()
{
int i = 0;
for(i = 0; i < 1; i++)
{
fork();
printf("+\n"); //注意"\n"
}
return 0;
}
结果中输出2个“+”。
程序四
#include "stdio.h"
#include "sys/types.h"
#include "unistd.h"
int main()
{
int i = 0;
for(i = 0; i < 1; i++)
{
fork();