-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathutils.c
35 lines (29 loc) · 1.05 KB
/
utils.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <unistd.h>
#include "utils.h"
void print_error(const char *module_name, const char *error_msg, const char *function_name) {
fprintf(stderr, "%s: %s: %s\n", module_name, function_name ? function_name : "", error_msg);
}
long long current_time() {
struct timeval time;
gettimeofday(&time, NULL);
return time.tv_usec / 1000;
}
char *signal_name(int signum) {
switch (signum) {
case SIGUSR1:
return "USR1";
case SIGUSR2:
return "USR2";
default:
return "not found";
}
}
void print_info(int process_number, char is_received, int signal_number) {
printf("%d %d %d %s %s %lld\n", process_number, getpid(), getppid(), is_received ? "получил" : "послал",
signal_name(signal_number), current_time());
fflush(stdout);
}
void print_stat(int usr1_count, int usr2_count) {
printf("%d %d завершил работу после %d-го сигнала SIGUSR1 и %d-го сигнала SIGUSR2\n", getpid(), getppid(), usr1_count,
usr2_count);
}