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);
    }
  • 相关阅读:
    POJ
    模板
    HDU
    CodeForces
    CodeForces
    Java
    百度之星2014复赛
    百度之星2014复赛
    转载
    百度之星2014初赛
  • 原文地址:https://www.cnblogs.com/ringwang/p/1429857.html
Copyright © 2011-2022 走看看