Basic points : -
1) && ===> if left side operand evaluates to 0 then right side operator doesn't evaluate
2) || ===> if left side operand evaluates to 1 then right side operator doesn't evaluate
3) fork() ====> Doubling the processes ( one parent copy and one child copy )
4) Precedence of && is grater than precedence of ||
fork() && fork() || fork() equivalent to ( fork() && fork() ) || ( fork() ) , note that result of this statement doesn't used for next statement
for better clarity of image https://drive.google.com/drive/folders/1aji_OQGkDY9atCk6zwGhl5dYeMWXMm-c