编写cp命令

作者: wangdsh | 来源:发表于2018-01-20 19:47 被阅读0次

cp命令能够复制文件,典型的用法是:
$ cp source-file target-file

编写cp命令用到的系统调用:
open、creat(创建/重写文件)、close

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>

int main(int ac,  char *av[]) {
    int buf_size = 1024;
    int n_chars;
    char buf[buf_size];
    if (ac != 3) {
        printf("Invalid argument. Usage: source destination.\n");
        exit(1);
    }   
    int fd_in = open(av[1], O_RDONLY);
    if (fd_in == -1) {
        printf("Can not open %s\n", av[1]);
        exit(1);
    }   
    int fd_out = creat(av[2], 0644);
    if (fd_out == -1) {
        printf("Can not open or create %s\n", av[2]);
        exit(1);
    }   
    while((n_chars = read(fd_in, buf, buf_size)) > 0) {
        if (write(fd_out, buf, n_chars) != n_chars) {
            printf("wirte error to %s\n", av[2]);
        }   
    }   
    close(fd_in);
    close(fd_out);
    return 0;
}

相关文章

  • 编写cp命令

    cp命令能够复制文件,典型的用法是:$ cp source-file target-file 编写cp命令用到的系...

  • mv与cp小记

    目录 准备 更新 mv命令 cp命令 准备 更新 mv命令 cp命令 参考 mv cp

  • Unix的文件管理(上)

    目录 概念 文件分类 什么是文件描述符 Unix的文件操作相关函数讲解及使用 编写程序实现 cat命令、cp命令 ...

  • 复制文件

    1、cp命令作用 cp用于复制文件或目录 2、cp命令语法 参数说明: 3、cp命令案例 1) 将/etc/sys...

  • 文件管理类命令

    Linux文件管理类命令:cp,mv,rm cp命令:copy 单源复制:cp [OPTION]... [...

  • linux下文件的复制、移动与删除

    linux下文件的复制、移动与删除命令为:cp,mv,rm 一、文件复制命令cp 命令格式: cp [-adfil...

  • linux每日学习(一)

    linux下文件的复制、移动与删除命令为:cp,mv,rm 一、文件复制命令cp命令格式:cp [-adfilpr...

  • 【Linux 命令】cp 命令详解

    Linux 命令之 cp 命令详解 一、cp 命令简介 cp 命令主要用于复制文件或目录。即用来将一个或多个源文件...

  • Linux命令之文件管理 (四十三)

    Linux cp命令Linux cp命令主要用于复制文件或目录。 语法cp [options] source de...

  • 第二周作业

    总结cp、mv命令的用法(要求列出源及目标各种情况的表格) cp 命令 该命令用于复制文件。 基本用法: cp 本...

网友评论

    本文标题:编写cp命令

    本文链接:https://www.haomeiwen.com/subject/mkotaxtx.html