程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> cp命令的實現

cp命令的實現

編輯:C++入門知識

[cpp]
#include <unistd.h>  
#include <fcntl.h>  
#include <stdlib.h>  
 
#define BUFFERSIZE 4096  
#define COPYMODE   0644  
 
void oops(char *, char *); 
 
int main(int argc, char *argv[]) 

    int in_fd, out_fd, n_chars; 
    char buf[BUFFERSIZE]; 
 
    if (argc != 3) 
    {    
        fprintf(stderr, "Usage: %s source destination\n", *argv); 
        exit(1); 
    }    
 
    if ((in_fd = open(argv[1], O_RDONLY)) == -1) 
        oops("Cannot open ", argv[1]); 
     
    if ((out_fd = creat(argv[2], COPYMODE)) == -1) 
        oops("Cannot creat ", argv[2]); 
     
    while ((n_chars = read(in_fd, buf, BUFFERSIZE)) > 0) 
    {    
        if (write(out_fd, buf, n_chars) != n_chars) 
        {    
            oops("Write error to ", argv[2]); 
        }    
    }    
 
    if (n_chars == -1) 
        oops("Read error from ", argv[1]); 
 
    if (close(in_fd) == -1 || close(out_fd) == -1)   
        oops("Error closing files", ""); 
    return 0; 

void oops(char *s1, char *s2) 

    fprintf(stderr, "Error: %s", s1); 
    perror(s2); 
    exit(1); 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved