通过管道实现文件复制

来源:互联网 发布:环境地质数据包括哪些 编辑:程序博客网 时间:2024/05/19 11:44
#include"stdio.h"
#include"stdlib.h"
#include"unistd.h"
#include"sys/types.h"
#include"sys/stat.h"
#include"string.h"
#include"fcntl.h"
#include"errno.h"

#define FIFO1 "/tmp/fifo"
#define MAXLINE 100

void client1(int);
void client2(int);

int main(int argc,char **argv)
{
        int writefd;
        writefd=open(FIFO1,O_WRONLY,0);
        client1(writefd);
        client2(writefd);

        close(writefd);
        unlink(FIFO1);
        exit(0);
}

void client1(int writefd1)//实现从文件写到管道,自己创建一个aa.txt文件
{
        char buff[MAXLINE];
        int fd;
        memset(buff,0,sizeof(buff));
        fd=open("aa.txt",O_CREAT|O_RDWR,S_IRWXU);
        read(fd,buff,sizeof(buff));
        write(writefd1,buff,sizeof(buff));
        close(fd);
}
void client2(int writefd2)//)//实现从管道写到另一个文件
{
        char buff[MAXLINE];
        int fd;
        fd=open("bb.txt",O_CREAT|O_RDWR,S_IRWXU);
read(writefd2,buff,sizeof(buff));
        write(fd,buff,sizeof(buff));
        close(fd);

}
0 0
原创粉丝点击