Subject: | |
From: | |
Reply To: | |
Date: | Sun, 20 Jun 2010 20:12:20 -0500 |
Content-Type: | text/plain |
Parts/Attachments: |
|
|
I observed a memory leak (about 20 bytes per iteration) when I ran this
simple program on my Scientific Linux 5.4 box (kernel version 2.6.18-
128.1.1.e15).
What I did was noting the output of "free -m" before and after I ran the
program (which loops for 300000). I observed a 6MB increase in memory use
d.
No error was printed during the run.
If I comment out the 2 fseek statements, then I don't see any memory
increase.
The file size is about 700KB.
I was wondering if someone can tell me if this is a known issue or if I'm
doing something wrong.
Thanks,
Khoa.
======Source file, compiled with gcc=========
#include <stdio.h>
#include <errno.h>
int main()
{
FILE * ptr = NULL;
int count = 0;
ptr = fopen("myBinaryFile","r");
while (ptr != NULL && count++ < 300000)
{
usleep(1000);
if (fseek(ptr, 0, SEEK_END))
printf("Error 1: %d\n", errno);
if (fseek(ptr, 0, SEEK_SET))
printf("Error 2: %d\n", errno);
if (fclose(ptr))
break;
usleep(10000);
ptr = fopen("myBinaryFile","r");
}
fclose(ptr);
if (count >= 300000)
print("Success\n");
return 0;
}
|
|
|