/* forktest.c Started by Jeff Ondich on 3/26/96 Last modified by Jeff 2/16/22 Modified by Tanya Amert for Fall 2024 This program gives a simple example of fork, and how a process can create a child process. To compile this program: gcc -Wall -Werror -Og -o forktest forktest.c To run this program: ./forktest */ #include #include const long LIMIT = 1e10; // 10,000,000,000 (1 with 10 zeros) const long FREQUENCY = 5e8; // 500,000,000 (5 with 8 zeros) // A simple demonstration of fork() int main() { if (fork() == 0) { /* Child */ pid_t process_id = getpid(); for (long k=0; k < LIMIT; k++) { if (k % FREQUENCY == 0) { printf("CHILD [%d]: %ld\n", process_id, k); } } } else { /* Parent */ pid_t process_id = getpid(); for (long k=0; k < LIMIT; k++) { if (k % FREQUENCY == 0) { printf("PARENT [%d]: %ld\n", process_id, k); } } } return 0; }