#include #include #include #include #include #include int main(const int argc, const char *argv[]) { if (argc != 2) { fprintf(stderr, "usage: main \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); }