#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
int main()
{
pid_t c1, c2;
float a;
c1 = fork();
if (c1 == 0)
{
printf("First Child (Circle)\n"); printf("Area of Circle = %.2f\n", 3.14 * a
* a
); printf("Perimeter of Circle = %.2f\n", 2 * 3.14 * a
); return 0;
}
c2 = fork();
if (c2 == 0)
{
printf("Second Child (Square)\n"); printf("Area of Square = %.2f\n", a
* a
); printf("Perimeter of Square = %.2f\n", 4 * a
); return 0;
}
waitpid(c2, NULL, 0); // Parent waits for square child only
printf("Parent: Square child completed\n");
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDx1bmlzdGQuaD4KI2luY2x1ZGUgPHN5cy90eXBlcy5oPgojaW5jbHVkZSA8c3lzL3dhaXQuaD4KCmludCBtYWluKCkKewogICAgcGlkX3QgYzEsIGMyOwogICAgZmxvYXQgYTsKCiAgICBwcmludGYoIkVudGVyIHZhbHVlIG9mIGE6ICIpOwogICAgc2NhbmYoIiVmIiwgJmEpOwoKICAgIGMxID0gZm9yaygpOwoKICAgIGlmIChjMSA9PSAwKQogICAgewogICAgICAgIHByaW50ZigiRmlyc3QgQ2hpbGQgKENpcmNsZSlcbiIpOwogICAgICAgIHByaW50ZigiQXJlYSBvZiBDaXJjbGUgPSAlLjJmXG4iLCAzLjE0ICogYSAqIGEpOwogICAgICAgIHByaW50ZigiUGVyaW1ldGVyIG9mIENpcmNsZSA9ICUuMmZcbiIsIDIgKiAzLjE0ICogYSk7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CgogICAgYzIgPSBmb3JrKCk7CgogICAgaWYgKGMyID09IDApCiAgICB7CiAgICAgICAgcHJpbnRmKCJTZWNvbmQgQ2hpbGQgKFNxdWFyZSlcbiIpOwogICAgICAgIHByaW50ZigiQXJlYSBvZiBTcXVhcmUgPSAlLjJmXG4iLCBhICogYSk7CiAgICAgICAgcHJpbnRmKCJQZXJpbWV0ZXIgb2YgU3F1YXJlID0gJS4yZlxuIiwgNCAqIGEpOwogICAgICAgIHJldHVybiAwOwogICAgfQoKICAgIHdhaXRwaWQoYzIsIE5VTEwsIDApOyAgLy8gUGFyZW50IHdhaXRzIGZvciBzcXVhcmUgY2hpbGQgb25seQoKICAgIHByaW50ZigiUGFyZW50OiBTcXVhcmUgY2hpbGQgY29tcGxldGVkXG4iKTsKCiAgICByZXR1cm4gMDsKfQo=