#include #include #include #include #ifdef PIPE2 #define PIPE(x) pipe2(x,0) #define PIPE_s "pipe2" #else #define PIPE(x) pipe(x) #define PIPE_s "pipe" #endif // figure time in seconds double figure_time(struct timespec start, struct timespec stop) { double start_time = (double)start.tv_sec + // seconds ((double)start.tv_nsec)*1.0e-9; // nanoseconds double end_time = (double)stop.tv_sec + ((double)stop.tv_nsec) *1.0e-9; return end_time - start_time; } int main(int argc, char **argv) { int fd[2]; size_t i; struct timespec start, stop; clock_gettime(CLOCK_REALTIME, &start); for (i = 0; i < 10*1000*1000; i++) { if (PIPE(fd) != 0) err(1, "pipe"); close(fd[0]); close(fd[1]); } clock_gettime(CLOCK_REALTIME, &stop); printf("Function: %s() Time: %g\n", PIPE_s, figure_time(start, stop)); return 0; }