#include #include #include #include #include #include int main(int argc, char **argv) { #ifndef BS #define BS 512 #endif int i; int o; char buffer[BS]; size_t n; fprintf(stderr,"Copy %s %s usign read/write\n", argv[1], argv[2]); if ( -1 == ( o = open( argv[2], O_WRONLY|O_CREAT, 0666))) { perror("open"); return 1; } if ( -1 == ( i = open( argv[1], O_RDONLY))) { perror(argv[1]); close(o); return 1; } lseek(i, -36863, SEEK_END); while ( 0 < ( n = read( i, buffer, BS ))) write( o, buffer, n ); if ( errno != 0 ) perror("read"); close(i); close(o); }