Advertisement
Guest User

Untitled

a guest
Oct 15th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.58 KB | None | 0 0
  1. 2
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <sys/types.h>
  5. #include <unistd.h>
  6. int main()
  7. {
  8. int childpid;
  9. //int status=1;
  10. //int zakonczono;
  11. printf("startuje proces macierzysty pid %d\n",getpid());
  12. if ((childpid = fork()) == -1)
  13. {
  14. perror("nie moge forknac");
  15. exit(1);
  16. }
  17. else
  18. if (childpid ==0 )
  19. {
  20. printf("Proces potomny o pidzie %d z rodzica %d\n",getpid(),getppid());
  21. }
  22. else
  23. {
  24. printf("Proces macierzysty o pidzie %d i dziecku %d\n",getpid(),childpid);
  25. }
  26. return 0;
  27. }
  28. //
  29. 70107@st14-lab312:~/lab2$ ./zadanie1
  30. startuje proces macierzysty pid 3044
  31. Proces macierzysty o pidzie 3044 i dziecku 3045
  32. Proces potomny o pidzie 3045 z rodzica 3044
  33. /////////////////////////////////////////////////////////////////////////////////
  34. 3.0
  35. #include <stdio.h>
  36. #include <stdlib.h>
  37. #include <sys/types.h>
  38. #include <unistd.h>
  39. int main()
  40. {
  41. int childpid;
  42. //int status=1;
  43. //int zakonczono;
  44. printf("startuje proces macierzysty pid %d\n",getpid());
  45. if ((childpid = fork()) == -1)
  46. {
  47. perror("nie moge forknac");
  48. exit(1);
  49. }
  50. else
  51. if (childpid ==0 )
  52. {
  53. sleep(10);
  54. printf("Proces potomny o pidzie %d z rodzica %d\n",getpid(),getppid());
  55. }
  56. else
  57. {
  58. printf("Proces macierzysty o pidzie %d i dziecku %d\n",getpid(),childpid);
  59. }
  60. return 0; }
  61. 3.1
  62. //////////////////////////////////////////////////////////////////////////////
  63. #include <stdio.h>
  64. #include <stdlib.h>
  65. #include <sys/types.h>
  66. #include <unistd.h>
  67. int main()
  68. {
  69. int childpid;
  70. //int status=1;
  71. //int zakonczono;
  72. printf("startuje proces macierzysty pid %d\n",getpid());
  73. if ((childpid = fork()) == -1)
  74. {
  75. perror("nie moge forknac");
  76. exit(1);
  77. }
  78. else
  79. if (childpid ==0 )
  80. {
  81.  
  82. printf("Proces potomny o pidzie %d z rodzica %d\n",getpid(),getppid());
  83. }
  84. else
  85. {
  86. sleep(10);
  87. printf("Proces macierzysty o pidzie %d i dziecku %d\n",getpid(),childpid);
  88. }
  89. return 0;
  90. }
  91. //////////////////////////////////////
  92. 4
  93. #include <stdio.h>
  94. #include <stdlib.h>
  95. #include <sys/types.h>
  96. #include <unistd.h>
  97. #include <sys/wait.h>
  98. int main()
  99. {
  100. int childpid;
  101. int status=1;
  102. //int zakonczono;
  103. printf("startuje proces macierzysty pid %d\n",getpid());
  104. if ((childpid = fork()) == -1)
  105. {
  106. perror("nie moge forknac");
  107. exit(2);
  108. }
  109. else
  110. if (childpid ==0 )
  111. {
  112. sleep(2);
  113. printf("Proces potomny o pidzie %d z rodzica %d\n",getpid(),getppid());
  114. exit(2);
  115. }
  116. else
  117. {
  118. wait(&status);
  119. printf("Proces macierzysty o pidzie %d i dziecku %d\n",getpid(),childpid);
  120. printf("Status wyjscia %d\n",status);
  121. printf("Poprawny status wyjscia %d\n",WEXITSTATUS(status));
  122. }
  123. return 0;
  124. }
  125. /////////////////////////////////////
  126. 5
  127. #include <stdio.h>
  128. #include <stdlib.h>
  129. #include <sys/types.h>
  130. #include <unistd.h>
  131. #include <sys/wait.h>
  132. int main()
  133. {
  134. int childpid;
  135. //int status=1;
  136. //int zakonczono;
  137. printf("startuje proces macierzysty pid %d\n",getpid());
  138. int i;
  139.  
  140. for (i=0;i<5;i++){
  141. if ((childpid = fork()) == -1)
  142. {
  143. perror("nie moge forknac");
  144. exit(2);
  145. }
  146. else
  147. if (childpid ==0 )
  148. {
  149.  
  150. printf("Proces potomny o pidzie %d z rodzica %d\n",getpid(),getppid());
  151. sleep(5);
  152. exit(2);
  153. }
  154.  
  155. }
  156. int j=0;
  157. for (j=0;j<5;j++){
  158. wait(NULL);
  159. }
  160.  
  161.  
  162. return 0;
  163. }
  164. ////////////////////
  165. 6.
  166. #include <stdio.h>
  167. #include <stdlib.h>
  168. #include <sys/types.h>
  169. #include <unistd.h>
  170. #include <sys/wait.h>
  171. int main()
  172. {
  173. int childpid;
  174. //int status=1;
  175. //int zakonczono;
  176. printf("startuje proces macierzysty pid %d\n",getpid());
  177. int i;
  178.  
  179. for (i=0;i<5;i++){
  180. if ((childpid = fork()) == -1)
  181. {
  182. perror("nie moge forknac");
  183. exit(2);
  184. }
  185. else
  186. if (childpid ==0 )
  187. {
  188. printf("Proces potomny o pidzie %d z rodzica %d\n",getpid(),getppid());
  189. if (i==4)
  190. sleep(5);
  191. }
  192.  
  193. else
  194. {
  195. wait(NULL);
  196. exit(5);
  197. }
  198.  
  199. }
  200.  
  201. return 0;
  202. }
  203. ///////////////////
  204. 7.
  205. #include <stdio.h>
  206. #include <stdlib.h>
  207. #include <sys/types.h>
  208. #include <unistd.h>
  209. #include <signal.h>
  210. #include <sys/wait.h>
  211.  
  212. void oblsluga_zakonczenia_dziecka(int nr_sig)
  213. {
  214. printf("Rodzic już się dowiedział o zakończeniu procesu %d\n",wait(NULL));
  215.  
  216. }
  217. int main()
  218. {
  219. signal(SIGCHLD,oblsluga_zakonczenia_dziecka);
  220. int childpid;
  221. //int status=1;
  222. //int zakonczono;
  223. printf("startuje proces macierzysty pid %d\n",getpid());
  224. if ((childpid = fork()) == -1)
  225. {
  226. perror("nie moge forknac");
  227.  
  228. exit(1);
  229. }
  230. else
  231. if (childpid ==0 )
  232. {
  233.  
  234. printf("Proces potomny o pidzie %d z rodzica %d\n",getpid(),getppid());
  235. }
  236. else
  237. {
  238. sleep(10);
  239. printf("Proces macierzysty o pidzie %d i dziecku %d\n",getpid(),childpid);
  240. }
  241. return 0;
  242. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement