Linux C 编程 | 文件拷贝

#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <assert.h>

int main(int argc, char *argv[])
{

    //系统调用write()
    //write(1,"hello world!",12);//0 标准输入  1 标准输出 2标准错误输出

    /* 
    //系统调用reaf()
    int fdr = open("file.txt",O_RDONLY);
    assert(fdr != -1);

    char buf[101];
    int len = read(fdr, buf, 100);//返回0,读到文件结尾
    printf("buf[%d] = %s\n",len,buf);
    */ 
    

	// 从命令行参数 argv[1] 的文件拷贝到 argv[2]
    //文件拷贝
    int fdr = open(argv[1],O_RDONLY);
    int fdw = open(argv[2],O_WRONLY | O_CREAT, 0600);

    if(fdr == -1 || fdw == -1)
    {
        perror("file open error");;
    }

    char buff[256] = {0};
    int len = 0;

    while( (len = read(fdr, buff, 256)) > 0)
    {
        write(fdw, buff, len);
    }

    close(fdr);
    close(fdw);

    exit(0);

}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我叫RT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值