Advertisement
Guest User

Untitled

a guest
Nov 24th, 2014
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.00 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<unistd.h>
  3. #include<stdlib.h>
  4. #include<fcntl.h>
  5. #include<ctype.h>
  6. #include<sys/types.h>
  7. #include<sys/stat.h>
  8.  
  9.  
  10. int main(int argc, char *args[])
  11. {
  12. int pipesDescriptors1[2];
  13. int pipesDescriptors2[2];
  14. int child1, child2, child3;
  15. int fileDescriptor;
  16. int fileDescriptorCount;
  17. int readFile;
  18. int readFileCount;
  19. int lowerLetters = 0;
  20. char charRead;
  21.  
  22.  
  23. if ( ( pipe(pipesDescriptors1)) < 0 )
  24. {
  25. printf("Eroare la teava 1");
  26. exit(0);
  27. }
  28.  
  29. if ( ( pipe(pipesDescriptors2)) < 0 )
  30. {
  31. printf("Eroare la teava 2");
  32. exit(0);
  33. }
  34.  
  35. if ( ( child1 = fork()) < 0 )
  36. {
  37. printf("Eroare la fork");
  38. exit(0);
  39. }
  40.  
  41.  
  42. if ( (fileDescriptor = open (args[1], O_RDONLY)) < 0 )
  43. {
  44. printf("Can't open file for reading");
  45. exit(0);
  46. }
  47.  
  48. if ( child1 == 0 ) //codul fiului 1
  49. {
  50. close(pipesDescriptors2[0]);
  51. close(pipesDescriptors2[1]);
  52.  
  53. close(pipesDescriptors1[0]); //inchid capatul de citire.
  54. while ( (readFile = read(fileDescriptor, &charRead, sizeof(charRead))) > 0)
  55. {
  56. if ( isupper(charRead) || islower(charRead) )
  57. {
  58. if ( (write(pipesDescriptors1[1],&charRead, readFile)) > 0 )
  59. {
  60. printf("Error writing to pipe");
  61. exit(0);
  62. }
  63. }
  64. }
  65.  
  66. close(pipesDescriptors1[1]); //inchid capatul de scriere
  67.  
  68. exit(0);
  69. }
  70. else
  71. {
  72. if ( (readFileCount = open (args[1], O_RDONLY) ) < 0 )
  73. {
  74. printf("Error reading to file!");
  75. exit(0);
  76. }
  77.  
  78. while ( (fileDescriptorCount = read(fileDescriptor, &charRead, sizeof(charRead))) > 0)
  79. {
  80. if ( islower(charRead))
  81. {
  82. lowerLetters++;
  83. }
  84. }
  85.  
  86. exit(lowerLetters);
  87. }
  88.  
  89. if ( (child2 = fork()) < 0 ) //codul fiului 2
  90. {
  91. close(pipesDescriptors1[1]); //inchid teava 1 pentru scriere.
  92. close(pipesDescriptors2[0]); // inchid teava 2 pentru citire
  93.  
  94. while ( (read (pipesDescriptors1[0], &charRead, sizeof(charRead))) > 0 )
  95. {
  96. //if (
  97. }
  98.  
  99. printf("Eroare la fork 2");
  100. exit(0);
  101. }
  102.  
  103. if ( child2 == 0 )
  104. {
  105.  
  106. exit(0);
  107. }
  108.  
  109. if ( (child3 = fork()) < 0 )
  110. {
  111. printf("Eroare la fork3");
  112. exit(0);
  113. }
  114.  
  115. if ( child3 == 0 ) //codul fiului 3
  116. {
  117. //
  118. exit(0);
  119. }
  120.  
  121. }
  122.  
  123. #include<stdio.h>
  124. #include<unistd.h>
  125. #include<stdlib.h>
  126. #include<fcntl.h>
  127. #include<ctype.h>
  128. #include<sys/types.h>
  129. #include<sys/stat.h>
  130.  
  131. int main (int argc, char *args[])
  132. {
  133. int teava1[2];
  134. int teava2[2];
  135. int pid1, pid2, pid3;
  136.  
  137.  
  138. int pid_a, int pid_b;
  139. if ( (pipe (teava1)) < 0 )
  140. {
  141. printf("Eroare la deschiderea tevii 1");
  142. exit(0);
  143. }
  144.  
  145. if ( (pipe (teava2)) < 0 )
  146. {
  147. printf("Eroare la deschidrea tevii 2");
  148. exit(0);
  149. }
  150.  
  151. if ( (pid1 = fork()) < 0 )
  152. {
  153. printf("Eroare la fork in copilul 1");
  154. exit(0);
  155. }
  156.  
  157. if ( pid1 == 0 )
  158. {
  159. exit(0);
  160. }
  161.  
  162. if ( (pid2 = fork()) < 0 )
  163. {
  164. printf("Eroare fork in copilul 2");
  165. exit(0);
  166. }
  167.  
  168. if ( pid2 == 0 )
  169. {
  170. exit(0);
  171. }
  172.  
  173. if ( (pid3 = fork()) < 0 )
  174. {
  175. printf("Eroare fork in copilul 3");
  176. exit(0);
  177. }
  178. if ( pid3 == 0 )
  179. {
  180. exit(0);
  181. }
  182. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement