Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*cel zadania - plik szwajcarski (pliki z dziurami)
- konwenter plikwo tekstowych miedzy postacia zwykla a nadzwyczajna
- orzerwa blok przerwa linijka .. konwenter dziala w obie strony,
- w dwoch trybach przy uruchomieniu:
- 1. tryb -z (zip) plik z dziurami na zwykly
- 1b. tryb -x w druga strone
- 2. parametr obowiazkowy sciezka do pliku wejsciowego
- 3. parametr opcjonalny sciezka do pliki wyjsciowego - jak go nie ma to na stdout
- 4. parametr opcjonalny -N <float> [=50] - rozmiar blokow w kB (wtedy gdy mamy x)*/
- #include <unistd.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <sys/stat.h>
- #include <sys/types.h>
- #include <fcntl.h>
- int main( int argc, char* argv[] )
- {
- int opt, flag;
- ssize_t read_buf,write_buf;
- char* in_file;
- char* out_file;
- float bSize=1;
- char* pEnd;
- while ( (opt = getopt( argc, argv, "zxNio:") != -1) )
- {
- switch( opt )
- {
- case 'i':
- in_file = optarg;
- break;
- case 'o':
- out_file = optarg;
- break;
- case 'z':
- flag = 1;
- break;
- case 'x':
- flag = 2;
- break;
- case 'N':
- bSize = strtof(argv, &pEnd)*1024;
- break;
- }
- }
- printf("input: %s\noutput: %s\n",*in_file,*out_file);
- int* fd_in = open(in_file, O_RDONLY);
- int s = bSize;
- char buf[s];
- read_buf = read( fd_in, buf, bSize );
- int* fd_out = open(out_file, O_WRONLY);
- write_buf = write( fd_out, buf, bSize );
- close(fd_in);
- close(fd_out);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement