/*
函数:time_begin/time_end
功能:成对儿使用。测试耗时,time_end()返回ms
*/
void time_begin(struct timeval *pstTime)
{
gettimeofday(pstTime,NULL);
}
int time_end(struct timeval *pstTime)
{
struct timeval stTime2;
long ms=0;
gettimeofday(&stTime2,NULL);
if (stTime2.tv_sec <pstTime->tv_sec)
{
/* 使用方法错误 */
return -1;
}
ms = (stTime2.tv_sec - pstTime->tv_sec)*1000;
ms += (stTime2.tv_usec - pstTime->tv_usec)/1000;
return ms;
}
/*
FUNCTION:load the file 'fileName' into 'pBuf';
RETURN: bytes of the loaded;
2013/2/28
*/
int load_file(char *fileName, char *pBuf)
{
struct stat fst;
int total =0;
int fileSize =0;
int fd;
int iret; fd = open(fileName,O_RDONLY);
if (fd < 0)
{
printf("\nErr:%s\n",strerror(errno));
return 0;
}
if (fstat(fd,&fst)<0)
{
close(fd);
printf("\nErr:%s\n",strerror(errno));
return 0;
}
fileSize = fst.st_size;
while(fileSize)
{
iret = read(fd,pBuf+total,fileSize);
if (iret < 0)
{
printf("\nErr:%s\n",strerror(errno));
close(fd);
return total;
}
fileSize -= iret;
total += iret;
}
return total;
}
/*
FUNCTION:store the data of 'pBuf' to file 'fileName';
RETURN: bytes of the stored;
2013/2/28
*/
int store_file(char *fileName, char *pBuf, int iFileSize)
{
int fd;
int total=0;
int iret;
fd = open(fileName, O_CREAT|O_TRUNC|O_WRONLY,S_IRUSR|S_IWUSR);
if (fd<0)
{
printf("\nErr:%s\n",strerror(errno));
return 0;
}
while(iFileSize)
{
iret = write(fd, pBuf, iFileSize);
if (iret <0)
{
printf("\nErr:%s\n",strerror(errno));
close(fd);
return total;
}
iFileSize -= iret;
total += iret;
}
close(fd);
return total;
}