elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Trabajo en: 27 Agosto 2015, 08:55 am
Hola tengo este ejercicio que que no he podido resolver alguien me podria ayudar.

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <sys/types.h>
  5. #include <sys/wait.h>
  6. #include <unistd.h>
  7. #include <fcntl.h>
  8. #include <sys/stat.h>
  9.  
  10. int main(int argc, char **argv[])
  11. {
  12. int pid;
  13. int bytes;
  14. char archivo[15];
  15. char datos[100];
  16.  
  17. printf("\nIngrese el nombre del archivo:~$  ");
  18. scanf("%s", archivo);
  19.  
  20. pid = fork();
  21.  
  22. if(pid==-1)
  23. {
  24. printf("\nERROR");
  25. exit (-1);
  26. }
  27.  
  28. if(pid==0)
  29. {
  30. printf("\nSoy el hijo");
  31. int fichero = open((strcat(archivo,".txt")),O_RDONLY);
  32. if(fichero==-1)
  33. {
  34. perror("ERROR. No se pudo abrir el fichero. ");
  35. exit (1);
  36. }
  37. else
  38. {  
  39. printf("\nFichero abierto correctamente.\n\n");
  40. bytes = read(fichero,datos,strlen(datos));
  41. printf("\nEl numero de bytes del archivo es: %d",bytes);
  42. printf("\n\n");
  43. }
  44. close(fichero);
  45.  
  46. }
  47. else
  48. {
  49. printf("\nSoy el padre\n");
  50. }
  51. return 0;
  52. }
  53.  
EL ENUNCIADO ES EL SIGUIENTE:

Citar
Escriba un programa en C que haga lo siguiente

- Pedir por teclado el nombre de un archivo
- Crear un proceso hijo
   - El proceso hijo abrirá el archivo en modo lectura, y mostrará por pantalla
     el número total de bytes del archivo. También contará y mostrará por pantalla
     cuantas veces aparecen las letras a, s, d y f (en minusculas y sin acento)

   - En caso de que ocurra un error, el proceso hijo informará por pantalla y
     terminará devolviendo el código de error 1, en caso contrario deberá devolver
     0 indicando que el proceso terminó correctamente.

- El proceso padre deberá esperar por la  culminación del proceso padre e informar sobre
  el PID y el estado en el que terminó el proceso hijo.

A continuación se muestra un ejemplo de ejecución del programa:

Esciba el nombre de un archivo: archivo.txt

PROCESO HIJO
Número total de bytes: 435 bytes
Veces que aparece la letra a: 127
Veces que aparece la letra s: 98
Veces que aparece la letra d: 45
Veces que aparece la letra f: 35

PROCESO PADRE
Ha terminado el proceso con PID = 1234 con el estado de error 0

Mod: cada tema va en su lugar, esto no es sobre linux, es sobre programacion en c, movido, los códigos de deben ir en etiquetas GeSHi, corregido, cambia el título el mismo debe ser descriptivo a la problemática
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines