read/write

/*
    #include <unistd.h>

    ssize_t read(int fd, void *buf, size_t count);
    参数:
    -fd:文件描述符,open()得到,通过这文件描述符操作某个文件
    -buf:需要读取数据存放的地方,数组的地址
    -count:指定的数组的大小

    返回值:
    -成功:
     >0:返回实际的读取到的字节数
     =0:文件已经到达末尾
    -失败:-1 并且设置errno

    #include <unistd.h>
    ssize_t write(int fd, const void *buf, size_t count);
    参数:
    - fd:文件描述符,open得到
    - buf:要向磁盘写入的数据
    - count: 要写的数据的实际的大小
    返回值:
    成功:写入的字节数
    失败:-1 并且设置errno
*/
#include <unistd.h>
#include<stdio.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>

int main()
{
    //通过open打开文件
    int srcfd=open("english.txt",O_RDONLY);
    if(srcfd==-1)
    {
        perror("open");
        return -1;
    }
    //创建文件
    int destfd=open("cpy.txt",O_WRONLY|O_CREAT,0664);
    if(destfd==-1)
    {
        perror("open");
        return -1;
    }
    //频繁读写文件
    char buf[1024]={0};
    int len=0;
    while (len=read(srcfd,buf,sizeof(buf))>0)
    {
        write(destfd,buf,len);
    }
    
    //关闭文件
    close(destfd);
    close(srcfd);
}
posted @ 2023-02-08 16:43  小秦同学在上学  阅读(13)  评论(0)    收藏  举报