if (NULL != fpSrc)
{
// 文件存在
return fpSrc;
}
printf("open %s /"rt+/" fail, may be create first!/n", pFileName);
// 创建文件
fpSrc = fopen(pFileName, "wt");
if (NULL != fpSrc)
{
// 文件创建成功
printf("create %s /"wt/" succ, pointer:%p!/n", pFileName, fpSrc);
}
else
{
// 文件创建失败
printf("create %s /"wt/" fail, pointer:%p!/n", pFileName, fpSrc);
}
return fpSrc;
}
/*==============================================================================
函 数 名 : WriteFile
功 能 : 写文件操作
算法实现 : 无
参 数 : [in] const char *pFileName - 文件名
[in] const char *pchStr - 写入的字符串buffer
返 回 值 : 成功-0,失败--1
日 期 : 2011/02/11
作 者 : jernymy
==============================================================================*/
static int WriteFile(const char *pFileName, const char *pchStr)
{
FILE *fpSrc = NULL;
int nFileLen;
if (NULL == pFileName)
{
printf("pFileName is NULL, exit!/n");
return -1;
}
if (NULL == pchStr)
{
printf("pchStr is NULL, exit!/n");
return -1;
}
fpSrc = GetFile(pFileName);
if (NULL == fpSrc)
{
printf("get file fail! exit/n");
return -1;
}
// 得到文件大小-文件长度
fseek(fpSrc, 0L, SEEK_END);
nFileLen = ftell(fpSrc);
// 写文件头后面部分
if (0 == nFileLen)
{
nFileLen = FILE_HEADER_LEN;
}
fseek(fpSrc, nFileLen, SEEK_SET);
if (FILE_HEADER_LEN == nFileLen)
{
fprintf(fpSrc, "/n");
}
fprintf(fpSrc, "%s/n", pchStr);
// 写文件头部分
fseek(fpSrc, 0L, SEEK_END);
nFileLen = ftell(fpSrc);
fseek(fpSrc, 0L, SEEK_SET);
fprintf(fpSrc, "File size:%09d", nFileLen);
// 关闭文件
if (NULL != fpSrc)
{
fclose(fpSrc);
fpSrc = NULL;
}
return 0;
}
/*==============================================================================
函 数 名 : main
功 能 : 程序主函数
算法实现 : 无
参 数 : 无
返 回 值 : 成功-0,失败--1
日 期 : 2011/02/11
作 者 : jernymy
==============================================================================*/
int main(void)
{
int nIdx;
char achBuf[20] = {0};
for (nIdx = 0; nIdx < 20; nIdx++)
{
sprintf(achBuf, "Index:%d%c", nIdx, 0);
WriteFile(SRC_FILE_NAME, achBuf);
}
return 0;
}