Contar letras archivo txt

Tengo que realizar un programa en c. Este programa tiene que ejecutar concurrentemente dos procesos para que cuente el numero de letras "c" de un fichero de texto llamado entrada.txt dado como un parámetro.
Para esto, el proceso padre debe crear un proceso hijo el cual le ayuda a contar las letras. Ambos leen de forma conjunta del fichero. Al acabar el hijo devuelve al padre un fichero llamado salida.txt el cual lee el padre y le suma al valor que el ya había obtenido para conseguir el numero real de letras "c" y escribirlo por pantalla.

1 respuesta

Respuesta
1
Creo que lo más sencillo sería tener 2 procesos uno que cuenta las 'c' desde la mitad y hasta el final y el otro que cuenta las 'c' desde el principio del archivo hasta la pmitad. No te voy a dar todo el código pero al menos la estructura general.
#include <iostream>
#include <string>
#include <sys/types.h>
#include <unistd.h>
using namespace std;
//Declaracion de las variables globales 
//tendras que compartir el descriptor de archivo y en funcion de tu manera de leer lo es 
//probable que necesites proteger el acceso con un semaforo....
File input, output;
main()
{
pid_t pID = fork();
if (pID == 0) // child
{
// Aqui estamos en el codigo del Hijo
//contaremos las c  desde (numero_lineas/2 + 1) hasta el final de INPUT
}
else if (pID < 0) // failed to fork
{
cerr << "Failed to fork" << endl;
exit(1);
// Throw exception
}
else // parent
{
// Aqui estamos en el codigo del padre
// contamos desde el principio y hasta numero_lineas/2
}
// Codigo comun a padre e hijo
//escribimos en OUTPUT lo calculado por hijo + calculado por PADRE
}
Suerte

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas