Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <semaphore.h>
- #include <stdio.h>
- #include <errno.h>
- #include <stdlib.h>
- #include <unistd.h>
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <fcntl.h>
- #include <sys/mman.h>
- int main(int argc, char **argv)
- {
- sem_t *semafor1;
- sem_t *semafor2;
- sem_close(semafor1);
- sem_close(semafor2);
- sem_unlink("/semafor1");
- sem_unlink("/semafor2");
- semafor1 = sem_open("/semafor1", O_RDWR|O_CREAT|O_EXCL, 0660, 0);
- if(semafor1==SEM_FAILED){
- perror("problem pri ustvarjanju semaforja1");
- return -1;
- }
- semafor2 = sem_open("/semafor2", O_RDWR|O_CREAT|O_EXCL, 0660, 0);
- if(semafor2==SEM_FAILED){
- perror("problem pri ustvarjanju semaforja2");
- return -1;
- }
- int i;
- if (fork()==0) {
- for (i = 0; i < 5; i++) {
- sem_wait(&semafor1);
- printf("%d : prvi\n", getpid());
- }
- exit(0);
- }
- else{
- if (fork()==0) {
- for (i = 0; i < 5; i++) {
- sem_wait(&semafor1);
- printf("%d : drugi\n", getpid());
- sem_post();
- }
- exit(0);
- }
- else{
- wait(0);
- }
- wait(0)
- }
- sem_close(semafor1);
- sem_close(semafor2);
- sem_unlink("/semafor1");
- sem_unlink("/semafor2");
- return EXIT_SUCCESS;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement