zoukankan      html  css  js  c++  java
  • cp 命令的编写

    该程序模拟linux 的 cp 拷贝命令

    打开,创建文件,读取和写文件使用系统的函数

    /**
    * cp.c
    */
    #include
    <stdio.h>
    #include
    <unistd.h>
    #include
    <fcntl.h>
    #define BUFFERSIZE      4096
    #define COPYMODE        0644
    void errmsg(char *msg,char *msgn);
    int main(int ac,char *av[])
    {
    int source_fp,target_fp;
    char buff[BUFFERSIZE];
    int n_chars; //fact read/write char number.
    if(ac!=3)
            errmsg(
    "please input source,target file",*av);
    if(strcmp(av[1],av[2])==0)
            errmsg(
    "source path equal target.","");
    if((source_fp=open(av[1],O_RDONLY))==-1)
            errmsg(
    "soruce error.",av[1]);
    if((target_fp=creat(av[2],COPYMODE))==-1)
            errmsg(
    "target error.",av[2]);
    while((n_chars=read(source_fp,buff,BUFFERSIZE))>0)
    {
            
    if(write(target_fp,buff,n_chars)!=n_chars)
                    errmsg(
    "write target error.",av[2]);
    }
    if(n_chars==-1)
            errmsg(
    "read source error.",av[1]);
    if(close(source_fp)==-1 || close(target_fp)==-1)
            errmsg(
    "close file error.","");\

    return 0;
    }
    void errmsg(char *msg,char *msgn)
    {
            fprintf(stderr,
    "Error:%s\n",msg);
            perror(msgn);
            exit(
    1);
    }
  • 相关阅读:
    2.4模拟赛
    2.3模拟赛
    初入博客园
    [SHOI2017]期末考试
    [整理]svn常见问题汇总
    转:Cookies 和 Session的区别
    常看的几个网站:推荐给大家
    电脑硬件基础知识
    offsetLeft和style.left的区别
    用Javascript实现图片的缓慢缩放效果
  • 原文地址:https://www.cnblogs.com/ringwang/p/1429857.html
Copyright © 2011-2022 走看看