我是靠谱客的博主 高贵月光,最近开发中收集的这篇文章主要介绍Linux系统下文件的拷贝/复制——fgetc/fputc、fgets/fputs、fread/fwrite、read/write的用法,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
一、fgetc/fpuc
提前创建a.txt文件输入"hello world"

利用fputc和fgetc拷贝文件a.txt("r"表示读)
#include <stdio.h>
int main(int argc, char const *argv[])
{
FILE *fp = NULL;
FILE *tp = NULL;
char ch ={0};
fp =fopen("a.txt","r");
tp = fopen("b.txt","w");
if(NULL == fp || NULL ==tp )
{
perror("fail to open");
return -1;
}
while(1)
{
ch = getc(fp);
if ( EOF == ch)
{
break;
}
putc(ch,tp);
}
fclose(fp);
fclose(tp);
return 0;
}

用"w"写读的方式获得b.txt

二、fgets/fpus
提前创建a.txt文件输入"how are you I am fine"

#include <stdio.h>
int main(int argc, char const *argv[])
{
FILE *fp = NULL;
FILE *tp = NULL;
char ch[32] = {0};
char *p = NULL;
fp = fopen("a.txt","r");
tp = fopen("c.txt","w");
if( NULL== fp || NULL == tp)
{
perror("fail to open");
return -1;
}
while(1)
{
p = fgets(ch,sizeof(ch),fp);
if(NULL == p)
{
break;
}
fputs(p,tp);
}
fclose(fp);
fclose(tp);
return 0;
}

用"w"写读的方式获得c.txt

三、fread/fwrite
提前创建a.txt文件输入"what are you do"

利用fread和fwrite拷贝文件a.txt("r"表示读)
#include <stdio.h>
int main(int argc, char const *argv[])
{
FILE *fp = NULL;
FILE *tp = NULL;
char ch[32]={0};
size_t x = 0 ;
fp =fopen ("a.txt","r");
tp = fopen("d.txt","w");
if( NULL == fp || NULL == tp)
{
perror("fail to open");
return -1 ;
}
while(1)
{
x = fread(ch,1,sizeof(ch),fp);
if( 0 == x)
{
break;
}
fwrite(ch,1,x,tp);
}
fclose(fp);
fclose(tp);
return 0;
}

用"w"写读的方式获得d.txt

四、read/write
提前创建a.txt文件输入"nihaoya"

利用read和write拷贝文件a.txt("r"表示读)
#include <stdio.h>
#include <sys/types.h>
#include<sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
int main(int argc, char const *argv[])
{
int fp = 0; int tp = 0;
char ch[7] = {0};
size_t x;
fp = open("a.txt",O_RDONLY);
tp = open("e.txt",O_WRONLY | O_CREAT | O_TRUNC,0664);
if( -1 == fp || -1 == tp)
{
perror("fail to open");
return -1 ;
}
while(1)
{
x = read(fp,ch,sizeof(ch));
if( 0 == x )
{
break;
}
write(tp,ch,sizeof(ch));
}
close(tp);
close(fp);
return 0;
}

用"w"写读的方式获得e.txt

最后
以上就是高贵月光为你收集整理的Linux系统下文件的拷贝/复制——fgetc/fputc、fgets/fputs、fread/fwrite、read/write的用法的全部内容,希望文章能够帮你解决Linux系统下文件的拷贝/复制——fgetc/fputc、fgets/fputs、fread/fwrite、read/write的用法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复