×
Samples Blogs Make Payment About Us Reviews 4.9/5 Order Now

Program To Allow Users To Fork 2 Processes And Then Exit When They Complete In C Language Assignment Solution

July 01, 2024
Dr. Brian Thompson
Dr. Brian
🇨🇦 Canada
C
Dr. Brian Thompson is a seasoned professional with a PhD in Computer Science from McGill University in Montreal, Canada. With 7 years of experience, he has completed over 700 C programming assignments with precision and accuracy. Dr. Thompson's specialization in software engineering and cybersecurity ensures that his solutions are not only efficient but also robust and secure.
Key Topics
  • Instructions
    • Objective
  • Requirements and Specifications
Tip of the day
Use Python libraries effectively by importing only what you need. For example, if you're working with data, using libraries like pandas and numpy can save time and simplify complex tasks like data manipulation and analysis.
News
In 2024, the Biden-Harris Administration has expanded high-dosage tutoring and extended learning programs to boost academic achievement, helping programming students and others recover from pandemic-related setbacks. These initiatives are funded by federal resources aimed at improving math and literacy skills​

Instructions

Objective

Write a program that allows users to fork 2 processes and then exit when they complete in C language.

Requirements and Specifications

Process Activity – Programming Language: C

  • Create a program (forkchildren.c) that will fork off two children.
  • One child will run the “ls -l” command
  • The other will run “cat forkchildren.c”
  • The main program will wait for the children to finish and then print a note saying it is finished and then it will end.
  • No pipe is needed for this assignment, each child is separate.

Screenshots of output

program-to-fork-2-processes-then-exit-when-they-complete-in-C

Source Code

#include #include #include #include int main() { pid_t pid1, pid2; int status; pid1 = fork(); /* fork parent */ if (pid1 == -1) /* if error */ { printf("Error forking first child\n"); return (EXIT_FAILURE); } else if (pid1 == 0) /* if in the first child */ { /* execute "ls -l" */ if (execlp("ls", "ls", "-l", (char *) NULL) < 0) { printf("Error in first child\n"); exit(EXIT_FAILURE); } } pid2 = fork(); /* fork parent again */ if (pid2 == -1) /* if error */ { printf("Error forking second child\n"); return (EXIT_FAILURE); } else if (pid2 == 0) /* if in the second child */ { /* execute "cat forkchildren.c" */ if (execlp("cat", "cat", "forkchildren.c", (char *) NULL) < 0) { printf("Error in second child\n"); exit(EXIT_FAILURE); } } /* wait for all children to end */ while (wait(&status) > 0); printf("Main program completed...\n"); return (EXIT_SUCCESS); }

Similar Samples

At ProgrammingHomeworkHelp.com, we specialize in providing expert assistance for all your programming assignments. Whether you're tackling C++, Java, Python, or any other language, our team of experienced programmers ensures top-quality solutions tailored to your needs. With a commitment to accuracy and timely delivery, we're here to help you excel in your programming endeavors. Explore our services today!"