J'essaie d'écrire un code qui fonctionne à la fois sous Linux et Win32. La différence la plus notable que je trouve entre eux (dans mon code) est la performance de fopen()
.
Le code suivant prend 5 secondes sur mon Ubuntu et le même code prend plus de 100 secondes sur Windows XP. Je tiens à préciser ici qu'Ubuntu est une VM alors que XP est sur une vraie machine.
time_t start = time(NULL);
for(int i=0; i < 100000; ++i){
FILE *fp = fopen("a.txt", "a");
if (fp != NULL)
{
fprintf(fp, "Hello World");
fclose(fp);
}
}
time_t end = time(NULL);
printf("\n It took %d seconds \n", end-start);
Clairement fopen()
est la cause de cette différence. Je veux savoir pourquoi cette différence est si importante.