Skip to content

Instantly share code, notes, and snippets.

@bzdgn
Last active November 10, 2015 12:32
Show Gist options
  • Save bzdgn/29774b54ddaa9ea9eabe to your computer and use it in GitHub Desktop.
Save bzdgn/29774b54ddaa9ea9eabe to your computer and use it in GitHub Desktop.
File IO Sample with fprintf [writing ~1GB of data into text file]
#include <stdio.h>
#include <string.h>
#include <windows.h>
long diff_micro(LARGE_INTEGER *start, LARGE_INTEGER *end)
{
LARGE_INTEGER Frequency, elapsed;
QueryPerformanceFrequency(&Frequency);
elapsed.QuadPart = end->QuadPart - start->QuadPart;
elapsed.QuadPart *= 1000000;
elapsed.QuadPart /= Frequency.QuadPart;
return elapsed.QuadPart;
}
long diff_milli(LARGE_INTEGER *start, LARGE_INTEGER *end)
{
LARGE_INTEGER Frequency, elapsed;
QueryPerformanceFrequency(&Frequency);
elapsed.QuadPart = end->QuadPart - start->QuadPart;
elapsed.QuadPart *= 1000;
elapsed.QuadPart /= Frequency.QuadPart;
return elapsed.QuadPart;
}
int main()
{
/* time */
/* http://stackoverflow.com/questions/17639213/millisecond-precision-timing-of-functions-in-c-crossplatform */
LARGE_INTEGER StartingTime, EndingTime;
QueryPerformanceCounter(&StartingTime);
/* FILE *f = stdout; */
FILE *f = NULL;
errno_t result = fopen_s(&f, "output.txt", "w");
if(result != 0)
{
char buffer[100];
strerror_s(buffer, sizeof(buffer), result);
printf("%s (%d)\n", buffer, result);
return result;
}
//fprintf(f, "Fenerbahce is the best!\n");
for(int i = 0; i < 10000000; i++)
fprintf(f, "XXXXX.....IIIIIyyyyyGGGGG.....OOOOO33333nnnnneeeeefffffUUUUU--------##########9999999999nnnnnnnnn\n");
fclose(f);
QueryPerformanceCounter(&EndingTime);
printf("DIFF in micro sec: %ld us\n", diff_micro(&StartingTime, &EndingTime));
printf("DIFF in milli sec: %ld ms\n", diff_milli(&StartingTime, &EndingTime));
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment