Facebook
From Denim Moth, 3 Years ago, written in C#.
This paste is a reply to Re: Re: ss from Colossal Bushbaby - view diff
Embed
Download Paste or View Raw
Hits: 122
  1. #include <stdio.h> ...operacje wejścia/wyjścia
  2. #include <sys/stat.h> ...maski uprawnień (choć niekonieczne)
  3. #include <fcntl.h> ...stała OCREAT
  4. #include <semaphore.h> ...semafory POSIX, w ogólności (konieczne)
  5. int main( int argc,char **argv )
  6. {
  7.  sem_t *id; ...identyfikator tworzonego semafora
  8.  int counter; ...licznik semafora (pomocniczo)
  9.  char name[] = "km"; ...nazwa semafora (jeżeli nazwany, jakaś musi
  10. być)
  11. niektóre implementacje semaforów POSIX
  12. wymagają aby nazwa zaczynała się od '/',
  13. czyli będzie
  14. char name[] = "km";
  15.  counter = 7; ...inicjujemy zmienną dla licznika
  16. ...spróbujmy w takim razie utworzyć/otworzyć semafor (nazwany)
  17. if((id=sem_open(name,O_CREAT,S_IRUSR|S_IWUSR,(unsigned)counter))!=SEM_FAILED)
  18. {
  19. ...jeżeli się udało, to ciąg dalszy
  20. printf( "*** otwarto semafor\t%s\n",name );
  21. if( !sem_getvalue( id,&counter ) ) ...odczyt licznika
  22. { printf( " licznik semafora\t%d\n",counter ); }
  23. else{ perror( "*** sem_getvalue()\t" ); }
  24. if( !sem_close( id ) ){ printf( "*** zamknięto semafor\t%s\n",name ); }
  25. else{ perror( "*** sem_close()\t" ); }
  26. /*...na wstępie pozostawmy te linie w komentarzu
  27. if( !sem_unlink( name ) ){ printf( "*** usunięto semafor\t%s\n",name ); }
  28. else{ perror( "*** sem_unlink()\t" ); }
  29. */
  30. }
  31. else{ perror( "....sem_open()...." ); } ...cóż, gdyby coś poszło nie tak
  32. return 0;
  33. }

Replies to Re: Re: Re: ss rss

Title Name Language When
Re: Re: Re: Re: ss Smelly Gibbon csharp 3 Years ago.