Escriba un programa para encontrar la suma de los números pares en el proceso padre y la suma de los números impares en el proceso hijo.
Ejemplos:
Input : 1, 2, 3, 4, 5 Output : Parent process Sum of even no. is 6 Child process Sum of odd no. is 9
Explicación: Aquí, habíamos usado la función fork() para crear dos procesos, un proceso secundario y uno principal.
- Para el proceso secundario, fork() devuelve 0 para que podamos calcular la suma de todos los números impares en el proceso secundario.
- fork() devuelve un valor mayor que 0 para el proceso principal para que podamos calcular la suma
- para todos los números pares simplemente comprobando el valor devuelto por fork().
C++
// C++ program to demonstrate calculation in parent and // child processes using fork() #include <iostream> #include <unistd.h> using namespace std; // Driver code int main() { int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int sumOdd = 0, sumEven = 0, n, i; n = fork(); // Checking if n is not 0 if (n > 0) { for (i = 0; i < 10; i++) { if (a[i] % 2 == 0) sumEven = sumEven + a[i]; } cout << "Parent process \n"; cout << "Sum of even no. is " << sumEven << endl; } // If n is 0 i.e. we are in child process else { for (i = 0; i < 10; i++) { if (a[i] % 2 != 0) sumOdd = sumOdd + a[i]; } cout << "Child process \n"; cout << "\nSum of odd no. is " << sumOdd << endl; } return 0; }
Producción:
Parent process Sum of even no. is 30 Child process Sum of odd no. is 25
Este artículo es una contribución de Pushpanjali Chauhan . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA