Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //File: player.c
- //Robert Entenmann
- //CSCI311
- //Project 6
- #include "player.h"
- //initializing flag
- int flag = 1;
- //usr1handler
- void usr1Handler (int sig)
- {
- printf("received show command.\n");
- }
- //usr2handler
- void usr2Handler (int sig)
- {
- printf ("receieved done command.\n");
- flag = 0;
- }
- int main(int argc, char **argv)
- {
- srand(time(NULL));
- //variable declarations
- int pick, pid, err;
- int OUT = atoi(argv[1]), ppid = atoi(argv[2]);
- char outBuff[100];
- //creating sigaction USR1
- struct sigaction usr1_act;
- /* Set signal handler. */
- usr1_act.sa_handler = (void(*)(int))usr1Handler;
- sigemptyset(&usr1_act.sa_mask);
- usr1_act.sa_flags = 0;
- err = sigaction (SIGUSR1, &usr1_act, NULL);
- //error on sigaction
- if (err == -1)
- {
- printf ("CSIG1: Received error %d on sigaction.\n", errno);
- exit(4);
- }
- //creating sigaction USR2
- struct sigaction usr2_act;
- /* Set signal handler. */
- usr2_act.sa_handler = (void(*)(int))usr2Handler;
- sigemptyset(&usr2_act.sa_mask);
- usr2_act.sa_flags = 0;
- err = sigaction (SIGUSR2, &usr2_act, NULL);
- //error on sigaction
- if (err == -1)
- {
- printf ("CSIG2: Received error %d on sigaction.\n", errno);
- exit(4);
- }
- //getting player process id
- pid = getpid();
- //send ready signal
- printf("Player (%d): sending ready command\n", pid);
- err = kill(ppid, SIGUSR1);
- //error on kill
- if (err == -1)
- {
- printf ("PSIG1: Kill error: %d\n", errno);
- exit (4);
- }
- //flag for game to be played based on # of games
- //player picks pick and is sent through pipe
- //repeats until # of games have been reached
- while(flag)
- {
- pick = rand()%3;
- sprintf(outBuff, "%d", pick);
- write(OUT, outBuff, strlen(outBuff) + 1);
- printf("Player (%d): ", pid);
- pause();
- }
- //player tells controller its terminating
- sleep(1);
- printf("Player (%d): terminating.\n", pid);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement