summaryrefslogtreecommitdiff
path: root/printf_vs_snprintf_plus_write.c
blob: 0527079fb7a4b6c9c20fd3de1d86bb1815e074ae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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;
}