/* main program illustrating the UNIX fork() system call.
Compile using cc -o main main.c
*/
#include <stdio.h>
int a;
void count1() {
a++;
}
void count2() {
a += 2;
}
void count3() {
a += 3;
}
int main()
{
count1();
int pid = fork();
if (pid > 0) {
wait(NULL);
count2();
count1();
}
else if (pid == 0) {
count1();
count3();
}
//printf("Using fork() system call\n");
return 0;
}
LyogICAgbWFpbiBwcm9ncmFtIGlsbHVzdHJhdGluZyB0aGUgVU5JWCBmb3JrKCkgc3lzdGVtIGNhbGwuIApDb21waWxlIHVzaW5nIGNjIC1vIG1haW4gbWFpbi5jCiovCiNpbmNsdWRlIDxzdGRpby5oPgppbnQgYTsKCnZvaWQgY291bnQxKCkgewogIGErKzsKICBwcmludGYoIiVkIiwgYSk7Cn0KCnZvaWQgY291bnQyKCkgewogIGEgKz0gMjsKICBwcmludGYoIiVkIiwgYSk7Cn0KCnZvaWQgY291bnQzKCkgewogIGEgKz0gMzsKICBwcmludGYoIiVkIiwgYSk7Cn0KCgppbnQgbWFpbigpCnsgICAKICBjb3VudDEoKTsKICAKICBpbnQgcGlkID0gZm9yaygpOwogIAogIGlmIChwaWQgPiAwKSB7CiAgICB3YWl0KE5VTEwpOwogICAgY291bnQyKCk7CiAgICBjb3VudDEoKTsKICB9CiAgZWxzZSBpZiAocGlkID09IDApIHsKICAgIGNvdW50MSgpOwogICAgY291bnQzKCk7CiAgfQogICAgLy9wcmludGYoIlVzaW5nIGZvcmsoKSBzeXN0ZW0gY2FsbFxuIik7CiAgICByZXR1cm4gMDsKfQ==