关闭

linux下标准I/O的使用——fread/fwrite

标签: linux标准io
117人阅读 评论(0) 收藏 举报
分类:
</pre><p>目的: </p><p>一个文件内容test.txt,文件内容如下:   1   2   4   5   编程读写这个文件,修改其内容,添加一行,将文件内容变成:   1   2   3   4   5      基本思路:把正确的内容写入一个临时文件,把临时文件重命名即可</p><p>代码如下:</p><pre name="code" class="cpp">#include <stdio.h>
#include <errno.h>

int main(int argc, char *argv[])
{
	FILE *fp1, *fp2;
	if (2 != argc)
	{
		printf("command error!\n");
		return -1;
	}

	fp1 = fopen(argv[1], "r");	//打开要修改的文件
	if (NULL == fp1)	
	{
		perror("open");		//出错处理
		return -1;
	}
	
	fp2 = fopen("3.txt", "w");	//创建一个临时文件
	
	char p[1024];
	while (fgets(p, 1024, fp1) != NULL)		//行缓存
	{
		fputs(p, fp2);
		long t = ftell(fp2);				//ftell取得当前的文件位置
		if (4 == t)
			fprintf(fp2,"3\n");
	}
	fclose(fp1);
	fclose(fp2);
	remove(argv[1]);				//删除源文件
	rename("./3.txt", "text.txt");		//重命名临时文件
	return 0;

}

0
0
查看评论

使fread和fwrite的运用更加的强壮

在很多人的代码中,我们会发现很多这样的代码char buf[ 1024 ];int len = 0;...fread( buf, len,  sizeof( char ), file1 );...fwrite( buf, len, sizeof( char ), file2 );在正常情况...
  • hello_wyq
  • hello_wyq
  • 2006-07-11 15:34
  • 4607

linux c之用fwrite和fread实现文件的复制

1、题目       用fwrite和fread函数实现文件的复制 2、函数解释      #include size_t fread(void *ptr, size_t size, size_t nmemb...
  • u011068702
  • u011068702
  • 2017-01-11 15:29
  • 2954

Linux 标准IO操作函数fopen fclose fread fwrite fgetc fputc fgets fputs

昨天我分享了Linux文件系统调用的一些函数,是不带缓存的,一般是底层调用,今天来分享下上层的标准IO操作函数,也就是跨平台的,一般以f开头 1 fopen 函数原型 FILE * fopen(const char *path,cost char *mode)作用:打开一个文件,返回指向该...
  • swjtufq
  • swjtufq
  • 2016-11-25 14:35
  • 399

linux fopen fread fwrite函数分析

1、fopen FILE * fopen(const char * path,const char * mode); 参数path字符串包含欲打开的文件路径及文件名, 参数mode字符串则代表着流形态。mode有下列几种形态字符串:   r  打开只读文件,该文件必须存...
  • pingnanlee
  • pingnanlee
  • 2013-07-31 18:29
  • 20195

fseek、fread和fwrite

首先这几个函数的使用方法请移步 fseek 点击打开链接 fread点击打开链接 fwrite点击打开链接 进入正题: 在更新一个顺序文件中选定的记录时,我们需要对文件可读又可写,为了保持与过去不能同时进行读写操作的程序的向下兼容性,一个输出操作不能随后直接紧跟一个输出操作,...
  • wdkirchhoff
  • wdkirchhoff
  • 2015-02-13 09:24
  • 1797

fwrite和fread函数的用法小结

fwrite和fread是以记录为单位的I/O函数,fread和fwrite函数一般用于二进制文件的输入输出。 #include size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); size_t fwrite(con...
  • Sky_qing
  • Sky_qing
  • 2013-10-16 16:55
  • 106019

fread,fwrite,fopen,fclose ,fseek用法

fopen 函数原型 FILE * fopen(const char *path,cost char *mode) 作用:打开一个文件,返回指向该文件的指针 参数说明:第一个参数为欲打开文件的文件路径及文件名,第二个参数表示对文件的打开方式 注:mode有以下值: r:只读方式打开,文件必...
  • u010270155
  • u010270155
  • 2015-07-31 14:43
  • 748

(四)Linux下c语言用fread()和fwrite()实现文件复制

1.fput/fget按字符读取函数  : 可以读取文本文件和二进制文件,但是读单个字符效率比较低。 2.fgets/fputs按行读取函数:只能处理文本文件,不能二进制文件,因为二进制包含0,0是终止符所以不能读。 3.fread/fwrite按对象结构体读取:都可以读/所以推荐这种用法...
  • u013488347
  • u013488347
  • 2017-08-01 14:55
  • 373

fread函数和fwrite函数,read,write

fread函数和fwrite函数  1.函数功能   用来读写一个数据块。 2.一般调用形式   fread(buffer,size,count,fp);   fwrite(buffer,size,count,fp); 3.说明   (...
  • maopig
  • maopig
  • 2011-11-07 19:00
  • 7096

fopen、fwrite、fread 函数——读写结构体类型数据详解

问题引入几个概念需要了解 文件读写过程:打开、读、写、关闭 结构体类型,也是一种类型,用简单数据类型的思维去考虑复杂类型 fopen()函数 函数原型: FILE *fopen(const char *path, const char *mode) 使用注意:需要判断产生的文件指针是不是空指针...
  • wangjun_huster
  • wangjun_huster
  • 2017-04-16 23:02
  • 1634
    个人资料
    • 访问:457次
    • 积分:44
    • 等级:
    • 排名:千里之外
    • 原创:4篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档