Computer Systems: A Programmer's Perspective (3rd Edition)
Computer Systems: A Programmer's Perspective (3rd Edition)
3rd Edition
ISBN: 9780134092669
Author: Bryant, Randal E. Bryant, David R. O'Hallaron, David R., Randal E.; O'Hallaron, Bryant/O'hallaron
Publisher: PEARSON
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
Students have asked these similar questions
What are the major threats of using the internet? How do you use it? How do children use it? How canwe secure it? Provide four references with your answer. Two of the refernces can be from an article and the other two from websites.
Assume that a string of name & surname is saved in S. The alphabetical characters in S can be in lowercase and/or uppercase letters. Name and surname are assumed to be separated by a space character and the string ends with a full stop "." character. Write an assembly language program that will copy the name to NAME in lowercase and the surname to SNAME in uppercase letters. Assume that name and/or surname cannot exceed 20 characters. The program should be general and work with every possible string with name & surname. However, you can consider the data segment definition given below in your program. .DATA S DB 'Mahmoud Obaid." NAME DB 20 DUP(?) SNAME DB 20 DUP(?) Hint: Uppercase characters are ordered between 'A' (41H) and 'Z' (5AH) and lowercase characters are ordered between 'a' (61H) and 'z' (7AH) in the in the ASCII Code table. For lowercase letters, bit 5 (d5) of the ASCII code is 1 where for uppercase letters it is 0. For example, Letter 'h' Binary ASCII 01101000 68H 'H'…
What did you find most interesting or surprising about the scientist Lavoiser?
Knowledge Booster
Background pattern image
Similar questions
SEE MORE QUESTIONS
Recommended textbooks for you
Text book image
C++ for Engineers and Scientists
Computer Science
ISBN:9781133187844
Author:Bronson, Gary J.
Publisher:Course Technology Ptr
Text book image
C++ Programming: From Problem Analysis to Program...
Computer Science
ISBN:9781337102087
Author:D. S. Malik
Publisher:Cengage Learning