Advertisement
Guest User

Untitled

a guest
May 22nd, 2018
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.08 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <sys/types.h>
  3. #include <sys/wait.h>
  4. #include <unistd.h>
  5. #include <stdlib.h>
  6. #include <string.h>
  7.  
  8. #define ELEMENTE 10
  9.  
  10. int main(int argc, char* argv[])
  11. {
  12. int p[2];
  13. int pid;
  14. int i;
  15.  
  16. if( -1 == pipe(p) )
  17. {
  18. perror("failed to create pipes");
  19. return -1;
  20. }
  21.  
  22. pid = fork();
  23. if(pid == -1)
  24. {
  25. perror("failed to create child process");
  26. return -1;
  27. }
  28.  
  29. if(pid)
  30. {
  31. int suma = 0;
  32. char c;
  33. close(p[1]);
  34.  
  35. while (read(p[0], c, 1))
  36. suma += c;
  37.  
  38. printf("suma caracterelor cifra din fisier este: %d\n", suma);
  39.  
  40. close(p[0]);
  41. }
  42. else
  43. {
  44. int file = fopen("input.txt", "r");
  45. int size;
  46. char *buffer;
  47.  
  48. close(p[0]);
  49. fseek(file, 0, SEEK_END);
  50. size = ftell(file);
  51. buffer = (char*)malloc(size+1);
  52. memset(buffer, 0, size+1);
  53. fread(buffer, 1, size, file);
  54. fclose(file);
  55.  
  56. for (i=0;buffer[i]!=0;i++)
  57. {
  58. char c = buffer[i];
  59. if ((c >= '0') && (c <= '9'))
  60. {
  61. c = c - '0';
  62. write(p[1], &c, 1);
  63. }
  64. }
  65.  
  66. free(buffer);
  67.  
  68. close(p[1]);
  69. }
  70.  
  71. return 0;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement