Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <signal.h>
- #include <unistd.h>
- void sighup_handler(int signum) {
- FILE *file = fopen("/user/home/prg.log", "a+");
- if (file == NULL) {
- file = fopen("/user/home/prg.log", "w");
- fprintf(file, "1\n");
- } else {
- int num;
- fscanf(file, "%d", &num);
- fclose(file);
- file = fopen("/user/home/prg.log", "w");
- fprintf(file, "%d\n", num + 1);
- }
- fclose(file);
- }
- void sigusr1_handler(int signum) {
- FILE *file = fopen("/user/home/prg.log", "r");
- if (file != NULL) {
- int num;
- fscanf(file, "%d", &num);
- printf("Current content of prg.log: %d\n", num);
- fclose(file);
- } else {
- printf("File prg.log does not exist\n");
- }
- }
- void sigterm_handler(int signum) {
- remove("/user/home/prg.log");
- exit(0);
- }
- int main() {
- signal(SIGHUP, sighup_handler);
- signal(SIGUSR1, sigusr1_handler);
- signal(SIGTERM, sigterm_handler);
- while (1) {
- sleep(1);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement