EBK COMPUTER SYSTEMS
EBK COMPUTER SYSTEMS
3rd Edition
ISBN: 8220101459107
Author: O'HALLARON
Publisher: YUZU
Question
Book Icon
Chapter 8.5, Problem 8.8PP
Program Plan Intro

Given code:

//Include necessary header files

#include <stdio.h>

#include <stdlib.h>

#include <unistd.h>

#include <wait.h>

#include <signal.h>

#include "csapp.h"

//Initialize the global counter variable as 2

volatile long counter = 2;

//Define a function named handler1()

void handler1(int sig)

{

    //Variable declaration

    sigset_t mask, prev_mask;

    //Call the function sigfillset()

    sigfillset(&mask);

    //Call the function sigprocmask() and block sigs

    sigprocmask(SIG_BLOCK, &mask, &prev_mask);

    //Call the function sio_putl()

    sio_putl(--counter);

    //Call the function sigprocmask() and restore sigs

    sigprocmask(SIG_SETMASK, &prev_mask, NULL);

    //Exit

   _exit(0);

}

//Define a function named main()

int main()

{

    //Variable declaration

    pid_t pid;

    sigset_t mask, prev_mask;

    //Print the counter value

    printf("%ld ", counter);

    //Flush the output buffer using fflush()

    fflush(stdout);

    //Call the function signal()

    signal(SIGUSR1, handler1);

    //Check the condition

    if ((pid = Fork()) == 0)

    {

        //True, execute the statement

        while(1) {};

    }

    //Call the function kill()

    Kill(pid, SIGUSR1);

    //Call the function waitpid()

    Waitpid(-1, NULL, 0);

    //Call the function Sigfillset()

    Sigfillset(&mask);

    //Call the function sigprocmask() and block sigs

    Sigprocmask(SIG_BLOCK, &mask, &prev_mask);

    //Print the counter value

    printf("%ld", ++counter);

    //Call the function sigprocmask() and restore sigs

    Sigprocmask(SIG_SETMASK, &prev_mask, NULL);

    //Exit

    exit(0);

}

Blurred answer
Knowledge Booster
Background pattern image
Recommended textbooks for you
Text book image
Computer Networking: A Top-Down Approach (7th Edi...
Computer Engineering
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:PEARSON
Text book image
Computer Organization and Design MIPS Edition, Fi...
Computer Engineering
ISBN:9780124077263
Author:David A. Patterson, John L. Hennessy
Publisher:Elsevier Science
Text book image
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:9781337569330
Author:Jill West, Tamara Dean, Jean Andrews
Publisher:Cengage Learning
Text book image
Concepts of Database Management
Computer Engineering
ISBN:9781337093422
Author:Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:Cengage Learning
Text book image
Prelude to Programming
Computer Engineering
ISBN:9780133750423
Author:VENIT, Stewart
Publisher:Pearson Education
Text book image
Sc Business Data Communications and Networking, T...
Computer Engineering
ISBN:9781119368830
Author:FITZGERALD
Publisher:WILEY