#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
void sum_of_digits()
{
int num, sum = 0, rem;
fflush(stdout
); // Flush output before input
while (num != 0) {
rem = num % 10;
sum += rem;
num /= 10;
}
printf("Sum of Digits: %d\n", sum
); }
int main()
{
pid_t c1, c2;
c1 = fork();
if (c1 == 0) {
return 0;
}
else {
c2 = fork();
if (c2 == 0) {
sum_of_digits();
return 0;
}
else {
wait(NULL);
wait(NULL);
printf("Parent exiting …good bye....\n"); }
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDx1bmlzdGQuaD4KI2luY2x1ZGUgPHN5cy90eXBlcy5oPgojaW5jbHVkZSA8c3lzL3dhaXQuaD4KCnZvaWQgc3VtX29mX2RpZ2l0cygpCnsKICAgIGludCBudW0sIHN1bSA9IDAsIHJlbTsKCiAgICBwcmludGYoIkVudGVyIHRoZSBudW1iZXI6ICIpOwogICAgZmZsdXNoKHN0ZG91dCk7ICAvLyBGbHVzaCBvdXRwdXQgYmVmb3JlIGlucHV0CiAgICBzY2FuZigiJWQiLCAmbnVtKTsKCiAgICB3aGlsZSAobnVtICE9IDApIHsKICAgICAgICByZW0gPSBudW0gJSAxMDsKICAgICAgICBzdW0gKz0gcmVtOwogICAgICAgIG51bSAvPSAxMDsKICAgIH0KCiAgICBwcmludGYoIlN1bSBvZiBEaWdpdHM6ICVkXG4iLCBzdW0pOwp9CgppbnQgbWFpbigpCnsKICAgIHBpZF90IGMxLCBjMjsKCiAgICBjMSA9IGZvcmsoKTsKCiAgICBpZiAoYzEgPT0gMCkgewogICAgICAgIHByaW50ZigiSGFwcHkgbmV3IHllYXJcbiIpOwogICAgICAgIHJldHVybiAwOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgYzIgPSBmb3JrKCk7CgogICAgICAgIGlmIChjMiA9PSAwKSB7CiAgICAgICAgICAgIHN1bV9vZl9kaWdpdHMoKTsKICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICB3YWl0KE5VTEwpOwogICAgICAgICAgICB3YWl0KE5VTEwpOwogICAgICAgICAgICBwcmludGYoIlBhcmVudCBleGl0aW5nIOKApmdvb2QgYnllLi4uLlxuIik7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAwOwp9Cg==