Facebook
From Mungo Earthworm, 2 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 229
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<unistd.h>
  4. #include<sys/types.h>
  5. int main()
  6. {
  7.  
  8.  
  9.  
  10. pid_t pid;
  11.  
  12. for(int i=0;i<3;i++)
  13. {
  14. pid=fork();
  15.  
  16. switch(pid)
  17. {
  18.     case -1:
  19.         {
  20.        perror(" Nie uwtorzono procesu potomnego. \n ");
  21.        exit(1);
  22.         }    
  23.     case 0:
  24.     {
  25.      
  26.    if(i==2) printf("gid= %d uid=%d pid=%d ppid=%d \n",getgid(),getuid(),getpid(),getppid());
  27.     break;
  28.     }  
  29.   default:
  30.         {
  31.  
  32.        
  33.         if(i==2) printf("gid= %d uid=%d pid=%d ppid=%d \n",getgid(),getuid(),getpid(),getppid());
  34.    
  35.     }
  36.     }
  37.  
  38.  
  39. }
  40. wait(NULL);
  41. wait(NULL);
  42. wait(NULL);
  43.  
  44.  
  45.  
  46.  
  47.  
  48. return 0;
  49. }
  50.  
  51.  
  52.  
  53. #include<stdio.h>
  54. #include<stdlib.h>
  55. #include<signal.h>
  56. #include<unistd.h>
  57. #include<sys/types.h>
  58. void sig(int num)
  59. {
  60. printf("numer sygnalu %d \n", num);
  61. }
  62. int main()
  63. {
  64. printf("pid = %d ppid = %d \n",getpid(),getppid());
  65.  
  66.  
  67.  
  68. if(signal(SIGUSR1,sig)==SIG_ERR)
  69. {
  70. perror(":");
  71. exit(-1);
  72. }
  73.  
  74.  
  75. int a=fork();
  76.  
  77.  
  78. switch(a)
  79. {
  80. case -1:
  81. {
  82. perror(":");
  83. exit(-1);
  84. }
  85. case 0:
  86. {
  87.  
  88. sleep(10);
  89.  
  90. kill(a,SIGUSR1);
  91. printf("dziecko\n");
  92. break;
  93. }
  94. default :
  95. {
  96.  
  97. sleep(5);
  98. kill(a,SIGUSR1);
  99. printf("rodzic \n");
  100. sleep(15);
  101. kill(a,SIGUSR1);
  102. printf("rodzic2 \n");
  103. wait(NULL);
  104. }
  105. }
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113. return 0;
  114. }
  115.  
  116.  
  117.  
  118. #include<stdio.h>
  119. #include<stdlib.h>
  120. #include<sys/types.h>
  121. #include<unistd.h>
  122. #include<sys/wait.h>
  123. int main()
  124. {
  125.  
  126.     int fd[2];
  127.     int x=0;
  128.  
  129.     if(pipe(fd)>=0)
  130.     {
  131.       switch(fork())
  132.         {
  133.         case -1:
  134.          {
  135.         perror(":");
  136.         exit(-1);
  137.         }
  138.         case 0:
  139.         {
  140.         int k=0;
  141.         close(fd[1]);
  142.     int r=read(fd[0],&k,sizeof(k));
  143.     if(r!=-1)
  144.     {
  145.     printf("value =%d \n",k);
  146.     sleep(1);
  147.     }
  148.     else
  149.     {
  150.         perror(":");
  151.         exit(-1);
  152.     }
  153. while(1)
  154. {
  155.  r= read(fd[0],&k,sizeof(k));
  156. if(r==0)
  157. {
  158. break;
  159. }
  160. printf("value =%d \n",k);
  161.  
  162. sleep(1);
  163. }
  164.  
  165.  
  166. close(fd[0]);
  167. break;
  168. }    
  169. default:
  170. {
  171. int b[4]={1,3,4,5};
  172. close(fd[0]);
  173. for(int i=0;i<4;i++)
  174. {
  175.  
  176. if(write(fd[1],&b[i],sizeof(b)))
  177. {
  178. printf("write \n");
  179. exit(-1);
  180. }
  181. close(fd[1]);
  182. break;
  183.  
  184. }
  185.  
  186. wait(NULL);
  187.  
  188. }
  189.  
  190.  
  191.         }
  192.      
  193. }
  194.     else
  195.     {
  196.     perror(":");
  197.     exit(-1);  
  198.     }
  199.    
  200.  
  201.  
  202.  
  203.  
  204.  
  205. return 0;
  206. }