Hi,
I am in problem. I have written some code in VC++.NET 2008. It is using third part AMT SDK. It is using file handling of C using fopen() function. The file are opened in binary mode (rb).
It is working very perfect according to our requirment on my local machine environment. But when i upload the same code on another machine with same operating system and environment, then I become surprise to notice that fopen() function doesn't works.
Can anyone please tell me my why FILE *fptr = fopen("fileName.bin","rb") fails to return a handle for a bin file. It is returning a NULL pointer?
I know some reasons that, files must be on a correct path and files must not be used by another process. But currently nothing is happening out of these reasons. The files are already placed on their correct path and are also not in any used.
I am calling fopen in a loop of 3 count. In first attempt of for loop, the file is open by fopen() but on second attempt, fopen() still returning a null pointer.
Please guide me in this case. I become stuck here. why fopen("fileName.bin","rb") fails and returning NULL value.
the errorno returned is here
The error number is 9
EBADF Bad file number 9
Here is my sample code
int file_count = 3;
for( int f=0; f<file_count; f++ )
{
FILE *f_in = NULL;
size_t items;
int buf_size;
void *buf_ptr = NULL;
//f_in = fopen(argv[f],"rb");
if(f==0)
f_in = fopen("video_output_interlaced_output.bin","rb");
else if(f==1)
f_in = fopen("audio_channel_1_output.bin","rb");
else
f_in = fopen("audio_channel_2_output.bin","rb");
if( f_in == NULL )
{
fprintf(fptr,"ERROR: Could not open '%s'\n", argv[f] );
perror("ERROR: Could not open file");
fprintf(fptr,"ERROR: number is '%d'\n", errno);
fclose(fptr);
return 1;
}
//fprintf(fptr,"\nOpening the file '%s'",argv[f]);
items = fread(&buf_size,sizeof(int),1,f_in);
Many Thanks,
--
Regards,
Asif