int main()
{
if(fork() && fork())
{
fork()
}
if(fork() || fork())
{
fork()
}
printf(“Hello world”)
return 0
}
a. 16
b. 20
c. 24
d. 64
----------------------------------------------------------------
b.20
----------------------------------------------------------------
pid_t fork( void); (pid_t 是一个宏定义,其实质是int 被定义在# include< sys/types.h>中) 返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程ID;否则,出错返回-1because:
#include#include using namespace std; int main() { if (fork() && fork()) printf("Hello World\n"); return 0; }
The result is 1 Hello World. Only the parent process could print and the child process couldn't print.
#include#include using namespace std; int main() { if (fork() || fork()) printf("Hello World\n"); return 0; }
The result is 2 Hello Worlds, the child process will execute the fork after ||, but for && the child process will start after printf. Since the parent process get an ID and child process get an 0.
#include#include using namespace std; int main() { if (fork() || fork() || fork()) printf("Hello World\n"); return 0; }
The result is 3 Hello World.
#include#include using namespace std; int main() { if (fork() || fork() || fork()) fork(); printf("Hello World\n"); return 0; }
7 Hello worlds!