#include #include #include #include #include int main( int argc,char** argv ) { int nsems,semflag,semid; key_t key; if( argc>1 ) { sscanf( argv[1],"%d",&nsems ) if( nsems>0 ) { key = ftok( "/tmp",'a'+'t'+'h'+'r'+'i'+'r' ); printf( "[pid=%u] tworzy zbiór %d semaforów [key=%x]\n", (unsigned)getpid(),nsems,(unsigned)key ); semflag = IPC_CREAT | S_IRUSR | S_IWUSR; semid = semget( key,nsems,semflag ); if( semid==-1 ){ perror( "\tsemget()..." ); exit( 3 ); } else { if( semctl( semid,0x0,IPC_RMID) == -1) { perror("\tsemctl()"); exit(1); } } } else { printf( "\t%s [%s]\n%s",argv[0],"n", "\tn -rozmiar tworzonej tablicy semaforów\n" ); exit( 1 ); } return 0; }}