#include "../source/uapi/monitor_user.h" #include #include #include #define NUM_VARS 2049 int main() { int i = 0; int temps[NUM_VARS] = {0}; watch_arg watch_args[NUM_VARS] = {0}; cancel_watch(); for (i = 0; i < NUM_VARS; i++) { temps[i] = 100; watch_args[i] = (watch_arg){ .task_id = getpid(), .ptr = &temps[i], .name = "temp", .length_byte = sizeof(int), .threshold = 110 + i, .unsigned_flag = 0, .greater_flag = 1, .time_ns = 2000 + (i / 33) * 5000, // on hyper-v, 1us will block all system. 2us just fine, maybe 1us is too short for hyper-v }; char name[20]; snprintf(name, sizeof(name), "temp%d", i); // 拷贝字符串 strncpy(watch_args[i].name, name, (MAX_NAME_LEN + 1)); start_watch(watch_args[i]); } while (temps[NUM_VARS - 1] < 205) { for (i = 0; i < NUM_VARS; i++) { temps[i]++; } printf("Value of variable %d: %d", i, temps[0]); printf("\n"); sleep(1); } cancel_watch(); return 0; }