jfcmacro

crearSemaforo.cpp

Mar 15th, 2019
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 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