jfcmacro

crearSemaforo.cpp

Mar 15th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.81 KB | None | 0 0
  1. #include <iostream>
  2. #include <sys/types.h>
  3. #include <sys/ipc.h>
  4. #include <sys/sem.h>
  5. #include <cstdlib>
  6. #include <cerrno>
  7. #include <cstring>
  8.  
  9. using namespace std;
  10.  
  11. static void usage(const char *progname);
  12.  
  13. // crearSemaforo <keysem>
  14. int
  15. main(int argc, char *argv[]) {
  16.  
  17.   if (argc != 2) usage(argv[0]);
  18.  
  19.   int key = atoi(argv[1]);
  20.  
  21.   int semid = semget(key, 1, IPC_CREAT | IPC_EXCL | 0660);
  22.  
  23.   if (semid == -1) {
  24.     cerr << "Error creando el semaforo: "
  25.      << strerror(errno) << endl;
  26.     return EXIT_FAILURE;
  27.   }
  28.  
  29.   if (semctl(semid, 0, SETVAL, 0) == -1) {
  30.     cerr << "Error estableciendo valor del semaforo: "
  31.      << strerror(errno) << endl;
  32.     return EXIT_FAILURE;
  33.   }
  34.  
  35.   return EXIT_SUCCESS;
  36. }
  37.  
  38. static void
  39. usage(const char *progname) {
  40.   cerr << "Uso: " << progname
  41.        << " <semkey> " << endl;
  42.   exit(EXIT_FAILURE);
  43. }
Add Comment
Please, Sign In to add comment