Advertisement
Guest User

Untitled

a guest
Nov 25th, 2015
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.41 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <sys/types.h>
  4. #include <sys/stat.h>
  5. #include <fcntl.h>
  6. #include <unistd.h>
  7. #include <string.h>
  8.  
  9. int main(int argc, char** argv)
  10. {
  11. int stevec=1;
  12.  int n,N=2;
  13.     int izh_cev = 0;
  14.     int id = 0;
  15.     char msg[100]; // sporocilo, ki ga bomo zapisali v cev
  16.     int l = 0; // dolzina zapisanega sporocila
  17.  mkfifo(msg, 0666);
  18.  
  19.     // odpremo oprimek do cevi za branje
  20.     // metoda prekine izvajanje, dokler drug program ne odpre cev za branje
  21.     izh_cev = open("izpis.txt",O_WRONLY);
  22.     if(izh_cev < 0)
  23.     {
  24.         perror("tezava pri odpiranju cevi\n");
  25.         return -1;
  26.     }
  27.  
  28.     // zapisemo sporocilo v cev
  29.     //l = write(izh_cev,msg,sizeof(msg));
  30.  
  31. for(n = 0; n < N; n++){
  32.         switch(fork()){
  33.             case -1:
  34.                 perror("tezava pri klicu fork");
  35.                 return -1;
  36.             case 0:
  37.                 //close(kom_cev[1]);
  38.                 //sprintf(pozdrav_str,"pozdrav! proces st. %d\n",j);
  39.                 //write(1,pozdrav_str,strlen(pozdrav_str));
  40.                 //read(kom_cev[0],buff,1); // proces tukaj caka, da stars zapre svoj oprimek za pisanje
  41.                
  42.                 while(stevec<=10)
  43.                 {
  44.                        
  45.                                
  46.      if(n==1 && stevec % 2 != 0)
  47.                           {
  48.                                       sprintf(msg,"%d:prvi\n",getpid());
  49.                                       write(izh_cev,msg,strlen(msg));
  50.                                  }
  51.                                
  52.                                  
  53.                                
  54.      if(n==0 && stevec % 2 == 0)
  55.                           {
  56.                                       sprintf(msg,"%d:drugi\n",getpid());
  57.                                       write(izh_cev,msg,strlen(msg));
  58.                                    
  59.                                  }
  60.                                
  61.                         stevec++; usleep(10000);
  62.                 }
  63.                
  64.                
  65.                 _exit(0);
  66.         }
  67.  
  68. }
  69.  
  70.     if(l >= 0)
  71.     {
  72.         printf("pisanje v cev koncanon\n");
  73.     }else
  74.     {
  75.         perror("tezave pri pisanju v cev\n");
  76.     }
  77.  
  78.  
  79.     // zapremo oprimek do cevi
  80.     if(close(izh_cev)!=0)
  81.     {
  82.         perror("tezava pri zapiranju cevi\n");
  83.         return -1;
  84.     }
  85.  for(n = 0; n < N; n++)
  86.         wait();
  87.     return 0;
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement