Advertisement
Guest User

Untitled

a guest
May 5th, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1. #include <semaphore.h>
  2. #include <stdio.h>
  3. #include <errno.h>
  4. #include <stdlib.h>
  5. #include <unistd.h>
  6. #include <sys/types.h>
  7. #include <sys/stat.h>
  8. #include <fcntl.h>
  9. #include <sys/mman.h>
  10.  
  11. int main(int argc, char **argv)
  12. {
  13. sem_t *semafor1;
  14. sem_t *semafor2;
  15.  
  16. sem_close(semafor1);
  17. sem_close(semafor2);
  18. sem_unlink("/semafor1");
  19. sem_unlink("/semafor2");
  20.  
  21. semafor1 = sem_open("/semafor1", O_RDWR|O_CREAT|O_EXCL, 0660, 0);
  22. if(semafor1==SEM_FAILED){
  23. perror("problem pri ustvarjanju semaforja1");
  24. return -1;
  25. }
  26.  
  27. semafor2 = sem_open("/semafor2", O_RDWR|O_CREAT|O_EXCL, 0660, 0);
  28. if(semafor2==SEM_FAILED){
  29. perror("problem pri ustvarjanju semaforja2");
  30. return -1;
  31. }
  32.  
  33. int i;
  34.  
  35. if (fork()==0) {
  36.  
  37. for (i = 0; i < 5; i++) {
  38. sem_wait(&semafor1);
  39. printf("%d : prvi\n", getpid());
  40. }
  41. exit(0);
  42. }
  43. else{
  44. if (fork()==0) {
  45. for (i = 0; i < 5; i++) {
  46. sem_wait(&semafor1);
  47. printf("%d : drugi\n", getpid());
  48. sem_post();
  49. }
  50. exit(0);
  51. }
  52. else{
  53. wait(0);
  54. }
  55. wait(0)
  56. }
  57.  
  58. sem_close(semafor1);
  59. sem_close(semafor2);
  60. sem_unlink("/semafor1");
  61. sem_unlink("/semafor2");
  62.  
  63. return EXIT_SUCCESS;
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement