#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <fcntl.h>
#define FOPEN_DEBUG 1
#if FOPEN_DEBUG
int main(void)
{
int nFile;
unsigned long ulTmpFilePosition, ulFilePosition;
unsigned int nReadBytes;
unsigned char szReadBuf[1024];
int i;
nFile = open("sample_d0.h264", O_RDONLY);
if(nFile < 0)
return 0;
ulTmpFilePosition = lseek(nFile, 0, SEEK_END) - lseek(nFile, 0, SEEK_SET);
ulFilePosition = 1024;
while(1)
{
nReadBytes = lseek(nFile, 0, SEEK_END) - lseek(nFile, ulFilePosition, SEEK_SET);
nReadBytes = lseek(nFile, 0, SEEK_CUR);
if(nReadBytes >= 1024)
{
memset(szReadBuf, 0x00, sizeof(szReadBuf));
nReadBytes = read(nFile, szReadBuf, sizeof(szReadBuf));
for(i=0; i<nReadBytes; i++)
printf("%02x ", szReadBuf[i]);
printf("READ FILE BYTES %d\n",nReadBytes);
if(nReadBytes == 0)
break;
getchar();
ulFilePosition = ulFilePosition + nReadBytes + 1;
}
}
return 0;
}
#else
int main(void)
{
FILE *pFile;
unsigned long ulTmpFilePosition, ulFilePosition;
unsigned int nReadBytes;
unsigned char szReadBuf[1024];
int i;
pFile = fopen("sample_d0.h264", "rb");
if(pFile == NULL)
return 0;
ulTmpFilePosition = fseek(pFile, 0, SEEK_END) - fseek(pFile, 0, SEEK_SET);
ulFilePosition = 1024;
while(1)
{
nReadBytes = fseek(pFile, 0, SEEK_END) - fseek(pFile, ulFilePosition, SEEK_SET);
nReadBytes = fseek(pFile, 0, SEEK_CUR);
if(nReadBytes >= 1024)
{
memset(szReadBuf, 0x00, sizeof(szReadBuf));
nReadBytes = fread(szReadBuf, sizeof(szReadBuf), 1, pFile);
for(i=0; i<nReadBytes; i++)
printf("%02x ", szReadBuf[i]);
if(nReadBytes == 0)
break;
ulFilePosition = ulFilePosition + nReadBytes + 1;
}
printf("READ FILE BYTES %d\n",nReadBytes);
getchar();
}
return 0;
}
#endif