I want to change the variables declared in the main function using signal handler when an user defined signal is sent to the process. I do not want to use any global variables.
Below is a sample code.
#include <iostream>
#include <csignal>
void signal_handler(int sig) {
    // I want to change value of b here
}
int main() {
    signal(SIGUSR1, signal_handler);
    int a, b = 10;
    while(1) {
        std::cin >> a;
        std::cout << a * b << std::endl;
    }
}
In place of 'b', it could be any other type of variable (a socket file descriptor, a mysql connection etc) which the program has to refresh once a signal is sent. Using global variables for all these tasks is not good.
So, please suggest the different methods for achieving it. Thank you.
Aucun commentaire:
Enregistrer un commentaire