|
附加模式:
[C] 纯文本查看 复制代码 /*
*********************************************************************************************************
* 函 数 名: CreateNewFile
* 功能说明: 在SD卡创建三个text文本,分别使用fwrite,fprintf和fputs写数据。
* 形 参: 无
* 返 回 值: 无
*********************************************************************************************************
*/
static void CreateNewFile(void)
{
const uint8_t WriteText[] = {"安富莱"};
const uint8_t WriteText1[] = {"函数名"};
FILE *fout;
uint8_t Readbuf[200];
FILE *fin;
uint32_t bw;
uint32_t i = 2;
uint8_t result;
/* 加载SD卡 */
result = fmount("N0:");
if(result != NULL)
{
/* 如果挂载失败,务必不要再调用FlashFS的其它API函数,防止进入硬件异常 */
printf("挂载文件系统失败 (%s)\r\n", ReVal_Table[result]);
goto access_fail;
}
else
{
printf("挂载文件系统成功 (%s)\r\n", ReVal_Table[result]);
}
printf("------------------------------------------------------------------\r\n");
/**********************************************************************************************************/
/* 打开文件夹test中的文件test1.txt,如果没有子文件夹和txt文件会自动创建*/
fout = fopen ("N0:\\test3.txt", "a");
if (fout != NULL)
{
/* 写数据 */
bw = fwrite (WriteText, sizeof(uint8_t), strlen((char *)WriteText), fout);
/* 关闭文件 */
fclose(fout);
}
else
{
printf("打开文件N0:\\test\\test.txt失败\r\n");
}
/* 打开文件夹test中的文件test1.txt */
fin = fopen ("N0:\\test3.txt", "r");
if (fin != NULL)
{
memset(Readbuf, 0, sizeof(Readbuf));
/* 读数据 */
bw = fread(Readbuf, sizeof(uint8_t), sizeof(Readbuf), fin);
Readbuf[bw] = NULL;
printf("test1.txt 文件内容 : \r\n%s\r\n", Readbuf);
/* 关闭文件 */
fclose(fin);
}
else
{
printf("打开文件N0:\\test\\test.txt失败, 可能文件不存在\r\n");
}
/* 打开文件夹test中的文件test1.txt,如果没有子文件夹和txt文件会自动创建*/
fout = fopen ("N0:\\test3.txt", "w");
fseek (fin, 2L, SEEK_SET);
if (fout != NULL)
{
/* 写数据 */
bw = fwrite (WriteText1, sizeof(uint8_t), strlen((char *)WriteText1), fout);
/* 关闭文件 */
fclose(fout);
}
else
{
printf("打开文件N0:\\test\\test.txt失败\r\n");
}
/* 打开文件夹test中的文件test1.txt */
fin = fopen ("N0:\\test3.txt", "r");
if (fin != NULL)
{
/* 防止警告 */
(void) WriteText;
memset(Readbuf, 0, sizeof(Readbuf));
/* 读数据 */
bw = fread(Readbuf, sizeof(uint8_t), sizeof(Readbuf), fin);
printf("test1.txt 文件内容 : \r\n%s\r\n", Readbuf);
/* 关闭文件 */
fclose(fin);
}
else
{
printf("打开文件N0:\\test\\test.txt失败, 可能文件不存在\r\n");
}
access_fail:
/* 卸载SD卡 */
result = funmount("N0:");
if(result != NULL)
{
printf("卸载文件系统失败\r\n");
}
else
{
printf("卸载文件系统成功\r\n");
}
printf("------------------------------------------------------------------\r\n");
}
数据内容修改:
[C] 纯文本查看 复制代码 /*
*********************************************************************************************************
* 函 数 名: SeekFileData
* 功能说明: 创建一个text文本,在指定位置对其进行读写操作。
* 形 参: 无
* 返 回 值: 无
*********************************************************************************************************
*/
static void SeekFileData(void)
{
const uint8_t WriteText[] = {"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"};
FILE *fin, *fout;
uint32_t bw;
uint32_t uiPos;
uint8_t ucChar;
uint8_t result;
uint8_t Readbuf[100];
/* 加载SD卡 */
result = fmount("N0:");
if(result != NULL)
{
/* 如果挂载失败,务必不要再调用FlashFS的其它API函数,防止进入硬件异常 */
printf("挂载文件系统失败 (%s)\r\n", ReVal_Table[result]);
goto access_fail;
}
else
{
printf("挂载文件系统成功 (%s)\r\n", ReVal_Table[result]);
}
printf("------------------------------------------------------------------\r\n");
/**********************************************************************************************************/
/* 打开文件夹test中的文件test1.txt,如果没有子文件夹和txt文件会自动创建*/
fout = fopen ("N0:\\test.txt", "w");
if (fout != NULL)
{
printf("打开文件N0:\\test.txt成功,如果没有txt文件会自动创建\r\n");
/* 写数据 */
bw = fwrite (WriteText, sizeof(uint8_t), sizeof(WriteText)/sizeof(uint8_t), fout);
if(bw == sizeof(WriteText)/sizeof(uint8_t))
{
printf("写入内容成功\r\n");
}
else
{
printf("写入内容失败\r\n");
}
/* 关闭文件 */
fclose(fout);
}
else
{
printf("打开文件N0:\\test.txt失败\r\n");
}
/* 打开文件夹test中的文件test1.txt */
fin = fopen ("N0:\\test.txt", "r");
if (fin != NULL)
{
/* 防止警告 */
(void) WriteText;
memset(Readbuf, 0, sizeof(Readbuf));
/* 读数据 */
bw = fread(Readbuf, sizeof(uint8_t), sizeof(Readbuf), fin);
printf("test1.txt 文件原始内容 : \r\n%s\r\n", Readbuf);
/* 关闭文件 */
fclose(fin);
}
else
{
printf("打开文件N0:\\test\\test.txt失败, 可能文件不存在\r\n");
}
/***********************************************/
fin = fopen ("N0:\\test.txt","r+");
if (fin != NULL)
{
fseek (fin, 2L, SEEK_SET);
ucChar = fputs ("123W567", fin);
/* 刷新数据到文件内 */
fflush(fin);
/* 关闭*/
fclose (fin);
}
else
{
printf("打开文件N0:\\test.txt失败\r\n");
}
/* 打开文件夹test中的文件test1.txt */
fin = fopen ("N0:\\test.txt", "r");
if (fin != NULL)
{
/* 防止警告 */
(void) WriteText;
memset(Readbuf, 0, sizeof(Readbuf));
/* 读数据 */
bw = fread(Readbuf, sizeof(uint8_t), sizeof(Readbuf), fin);
printf("test.txt 修改后文件内容 : \r\n%s\r\n", Readbuf);
/* 关闭文件 */
fclose(fin);
}
else
{
printf("打开文件N0:\\test\\test.txt失败, 可能文件不存在\r\n");
}
access_fail:
/* 卸载SD卡 */
result = funmount("N0:");
if(result != NULL)
{
printf("卸载文件系统失败\r\n");
}
else
{
printf("卸载文件系统成功\r\n");
}
printf("------------------------------------------------------------------\r\n");
}
|
|