linux实现cp命令与linux下打开文件并写入源码

linux下打开文件并写入源码

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

int main ()
{
        int fd;
        char *buf = "liuuzhihaoyaojiayou";
        fd = open("./file1",O_RDWR);
//      printf("fd= %d",fd);    
        if(fd == -1){
                printf("open file1 failed \n");
                fd = open ("./file1",O_RDWR|O_CREAT,0600);
                if(fd>0){
                        printf("create file1 success!\n");
                }

        }


        write(fd,buf,strlen(buf));
        close(fd);
        return 0;
}
~                                                                                                       
~                                                                                                       
~            

linux实现cp命令

#include<stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#include<stdlib.h>
int main (int argc,char **argv)//复制的第一个文件给第二个文件例./mycp 1 2
{
        int fdsrc;//原文件的文件描述符
        int fddes;//复制的新文件的文件描述符
        char *readbuf=NULL;//定义一个指针空间并使其为空

        if(argc !=3){//这是在这里做了一个判断,如果第一文件不存在还复制个毛线,直接退出
                printf("pararm ereor\n");
                exit(-1);
        }


        fdsrc=open(argv[1],O_RDWR);//打开第一个文件
        int size = lseek(fdsrc,0,SEEK_END);//光标移动到最后面,的空间
        lseek(fdsrc,0,SEEK_SET);//光标再移到最前面

        readbuf=(char *)malloc(sizeof(char)*size + 8);//创建系统复制空间

        int n_read = read(fdsrc,readbuf,size);//读取
        fddes = open(argv[2],O_RDWR|O_CREAT|O_TRUNC,0600);//打开第二个文件,并清空内容

        int n_write = write(fddes,readbuf,strlen(readbuf));//将系统内存写入
        close(fdsrc);//关闭原文件
        close(fddes);//关闭复制后的文件
        return 0;
}
~                                                                                                       
~    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值