diff options
Diffstat (limited to 'printf_vs_snprintf_plus_write.c')
-rw-r--r-- | printf_vs_snprintf_plus_write.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/printf_vs_snprintf_plus_write.c b/printf_vs_snprintf_plus_write.c new file mode 100644 index 0000000..0527079 --- /dev/null +++ b/printf_vs_snprintf_plus_write.c @@ -0,0 +1,29 @@ +#include <stdio.h> +#include <unistd.h> +#include <time.h> + +#define NUM 1234567890 +#define BUFSIZE 25 + +int main(void) +{ + int pid = fork(); + char buffer[BUFSIZE + 1]; + time_t time_taken; + + if (pid == 0) { //slightly slower result + for (int i = 0; i < NUM; ++i) { + printf("Child: %d\n", i); + } + time_taken = time(&time_taken); + } else { //slightly faster result + for (int i = 0; i < NUM; ++i) { + snprintf(buffer, BUFSIZE, "Parent: %d\n", i); + write(1, buffer, BUFSIZE); + } + time_taken = time(&time_taken); + } + + fprintf(stderr, "time taken: %zu", time_taken); + return 0; +} |