/*
根据cp命令的格式要求,设计一个类cp的功能程序,要求使用标准IO的调用函数,分3种形式实现,字符,行,块。并注意函数功能的分层
*/

#include<stdio.h>
#include <unistd.h>
/*fgetc fputc 一个字符*/
int cpchar(char *src, char *des)
{
FILE *fpsrc,*fpdes;
char ch;

fpsrc = fopen(src, "r");
if(fpsrc==NULL)
{
printf("open src fail\n");
return -1;
}

fpdes = fopen(des, "w");
if(fpdes==NULL)
{
printf("open des fail\n");
return -1;
}

while(1)
{
if((ch=fgetc(fpsrc))!=EOF)
{
fputc(ch,fpdes);
printf("%c",ch);
}
else
{
break;
}
}

fclose(fpsrc);
fclose(fpdes);

return 0;
}

/*fgets fputs 一行*/
int cpline(char *src, char *des)
{
FILE *fpsrc,*fpdes;
char buf[1024];

fpsrc = fopen(src, "r");
if(fpsrc==NULL)
{
printf("open src fail\n");
return -1;
}

fpdes = fopen(des, "w");
if(fpdes==NULL)
{
printf("open des fail\n");
return -1;
}

while(1)
{
if(fgets(buf,1024,fpsrc)!=NULL)
{
fputs(buf,fpdes);
printf("%s",buf);
}
else
{
break;
}
}

fclose(fpsrc);
fclose(fpdes);

return 0;
}

/*fread fwrite 一块*/
int cpblk(char *src, char *des)
{
FILE *fpsrc,*fpdes;
char buf[1024];
int num;

fpsrc = fopen(src, "r");
if(fpsrc==NULL)
{
printf("open src fail\n");
return -1;
}

fpdes = fopen(des, "w");
if(fpdes==NULL)
{
printf("open des fail\n");
return -1;
}

while(1)
{
if((num=fread(buf,sizeof(char),1024,fpsrc))>0)
{
fwrite(buf,sizeof(char),num,fpdes);
printf("%d ",num);
}
else
{
break;
}
}

fclose(fpsrc);
fclose(fpdes);

return 0;
}

Linux使用标准IO的调用函数,分3种形式实现的更多相关文章

  1. 标准IO:常用函数集合

    stdio : 标准IO  (1) 流(stream)和文件(file) 流和文件 在Turbo C2.0中是有区别的, Turbo C2.0 为编程者和被访问的设备之间提供了一层抽象的东西, 称之为 ...

  2. LINUX下C语言编程调用函数、链接头文件以及库文件

    LINUX下C语言编程经常需要链接其他函数,而其他函数一般都放在另外.c文件中,或者打包放在一个库文件里面,我需要在main函数中调用这些函数,主要有如下几种方法: 1.当需要调用函数的个数比较少时, ...

  3. JS调用函数的两种方式

    <script type="text/javascript"> window.onload = init; //onload 表示页面全部加载完毕后,再调用init() ...

  4. javascript中在定义函数的几种形式

    内容主要是讲述javascript在类(原型对象)中定义方法的几种形式,简要之主要有三种:this关键字.prototype关键字.var 对象名={name:value,name2:value2}: ...

  5. Linux下普通IO文件操作函数---C语言

    普通文件IO总结 FILE结构体    typedef struct   {       int level; /*填充/清空一级缓存*/     unsigned flag; /*文件状态指针*/ ...

  6. 5、linux下应用字符串相关调用函数列举说明

    1.函数原型int strcmp(const char *s1,const char *s2);设这两个字符串为s1,s2,规则当s1<s2时,返回为负数当s1=s2时,返回值= 0当s1> ...

  7. onclick调用函数的几种!

    ()是个操作,表示执行displayDate方法,你把displayDate方法执行完的返回值赋给onclick能对吗?onclick接受的是Function类型的变量,要么用匿名的方法赋值就是doc ...

  8. 注意string的insert函数的几种形式

    string (1) string& insert (size_t pos, const string& str); substring (2) string& insert ...

  9. shell调用函数返回值深入分析

    编写shell脚本过程中,我们经常会自定义一些函数,并根据函数的返回值不同来执行相应的流程,那么我们如何来获取函数的返回值呢? 首先shell中调用函数有两种方式: 第一种:value=`functi ...

随机推荐

  1. 【转】ConcurrentHashMap完全解析(JDK6/7、JDK8)

    转自http://my.oschina.net/hosee/blog/675884 并发编程实践中,ConcurrentHashMap是一个经常被使用的数据结构,相比于Hashtable以及Colle ...

  2. 从Setting.settings到Resource.resx

    之前由于经验不足,将常用的App提示信息串(string)放置在了配置文件中(*.Settings).目前需要将App国际化,对这些信息的翻译有两个途径: 直接翻译,将参数中的提示信息串用英文或者其他 ...

  3. JS 数组乱序

    因为不想在后台操作,就使用js进行 涉及到了一个打乱数组顺序的方法 百度到的一篇 Author : Jun.lu http://www.cnblogs.com/idche/archive/2010/0 ...

  4. CSS中如何将li横向排列

    直接贴段例子代码吧: @{ Layout = null;} <!DOCTYPE html><style type="text/css"> .test li ...

  5. JDBC连接MySQL数据库及示例

      JDBC是Sun公司制定的一个可以用Java语言连接数据库的技术. 一.JDBC基础知识         JDBC(Java Data Base Connectivity,java数据库连接)是一 ...

  6. Linux相关指令

    Linux相关指令 1.find文件搜索功能 find [目录列表] [匹配参数] [匹配标准] -name :按文件名称进行搜索 -group :按文件所属组进行搜索 -user :按文件拥有者进行 ...

  7. js中字符和数组一些基本算法题

    最近在刷 fcc的题,跟升级打怪一样,一关一关的过,还挺吸引我的.今天抽时间把 Basic Algorithm Scritping  这部分题做了,根据一些提示,还是比较简单的.有些题的处理方式 方法 ...

  8. windows下 berkerly db的安装配置(修正了关键步骤)

    这个是我从别人的博客上找来的,亲测可用,确实解决了我当时遇到的一些问题. 首先,从http://www.oracle.com/technology/global/cn/software/product ...

  9. POJ 1273(EK)

    题目大概意思是,有N条水沟和M个水池,问从第一个水池到最后一个水池在同一时间内能够流过多少水第一行有两个整数N,M接下来N行,每行有3个整数,a,b,c,代表从a到b能够流c单位的水超级模板题,一个有 ...

  10. bzoj 1132 POI2008 Tro

    大水题=_=,可我想复杂了…… 很裸的暴力,就是加了个小优化…… 叉积求面积 :abs(xi*yj - yi*xj) 所以去掉绝对值,把 xi 和 xj 提出来就可以求和了 去绝对值加个极角排序,每次 ...