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

int main(int argc,char *argv[])
{
        int fds = -1;
        int fdt = -1;
        char answer = 'n';
        ssize_t size = -1;
        char buf[10];
        if( argc != 3 )
        {
                printf("Usage:%s SOURCE TARGET.\n",argv[0]);
                return 1;
        }
        fds = open( argv[1] , O_RDONLY | O_EXCL );
        if ( fds == -1 )
        {
                printf("%s: The source doesn't exist.\n",argv[0]);
                return 2;
        }
        close( fds );
        fdt = open( argv[2] , O_WRONLY | O_CREAT | O_EXCL , 00666 );
        if ( fdt == -1 )
        {
                printf("%s: Overwrite '%s'? ",argv[0],argv[2]);
                scanf("%c",&answer);
                if ( answer != 'y' )
                {
                        return 3;
                }
                else
                {
                        fdt = open ( argv[2] , O_WRONLY | O_CREAT | O_TRUNC , 00666 );
                }
        }
        fds = open( argv[1] , O_RDONLY );
        if ( fds == -1 )
        {
                printf("%s: %s open error.\n",argv[0],argv[1]);
                return 4;
        }
        while( size )
        {
                size = read( fds, buf, 10 );
                if ( size == -1 )
                {
                        printf("%s: %s read error.\n",argv[0],argv[1]);
                        return 5;
                }
                else
                {
                        if ( size > 0 )
                        {
                                write( fdt, buf, size );
                        }
                }
        }
        return 0;
}