1
0
Files
BSc-Thesis/proj/perf/main.c
2025-08-13 12:26:10 +02:00

34 lines
996 B
C

#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <unistd.h>
int main(const int argc, const char *argv[]) {
if (argc != 2) {
fprintf(stderr, "usage: main <cycles>\n");
return 1;
}
const long cycles = strtol(argv[1], NULL, 10);
struct timespec start, end;
clock_gettime(CLOCK_MONOTONIC, &start);
int pipes[2];
for (int i = 0; i < cycles; i++) {
if (pipe(pipes) != 0) {
fprintf(stderr, "unable to create pipes: %s\n", strerror(errno));
exit(1);
}
close(pipes[0]);
close(pipes[1]);
}
clock_gettime(CLOCK_MONOTONIC, &end);
const long duration = end.tv_sec * 1000000000 + end.tv_nsec - start.tv_sec * 1000000000 - start.tv_nsec;
printf("start: %li.%09li\nend: %li.%09li\nduration: %li,%03li,%03li ns\n", start.tv_sec, start.tv_nsec, end.tv_sec, end.tv_nsec, duration / 1000000, duration / 1000 % 1000, duration % 1000);
}