Advertisement
Guest User

linux20.11

a guest
Nov 20th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.42 KB | None | 0 0
  1. /*cel zadania - plik szwajcarski (pliki z dziurami)
  2. konwenter plikwo tekstowych miedzy postacia zwykla a nadzwyczajna
  3. orzerwa blok przerwa linijka .. konwenter dziala w obie strony,
  4. w dwoch trybach przy uruchomieniu:
  5. 1. tryb -z (zip) plik z dziurami na zwykly
  6. 1b. tryb -x w druga strone
  7. 2. parametr obowiazkowy sciezka do pliku wejsciowego
  8. 3. parametr opcjonalny sciezka do pliki wyjsciowego - jak go nie ma to na stdout
  9. 4. parametr opcjonalny -N <float> [=50] - rozmiar blokow w kB (wtedy gdy mamy x)*/
  10.  
  11. #include <unistd.h>
  12. #include <stdio.h>
  13. #include <stdlib.h>
  14. #include <sys/stat.h>
  15. #include <sys/types.h>
  16. #include <fcntl.h>
  17. int main( int argc, char* argv[] )
  18. {
  19. int opt, flag;
  20. ssize_t read_buf,write_buf;
  21. char* in_file;
  22. char* out_file;
  23. float bSize=1;
  24. char* pEnd;
  25. while ( (opt = getopt( argc, argv, "zxNio:") != -1) )
  26. {
  27. switch( opt )
  28. {
  29. case 'i':
  30. in_file = optarg;
  31. break;
  32.  
  33. case 'o':
  34. out_file = optarg;
  35. break;
  36.  
  37. case 'z':
  38. flag = 1;
  39. break;
  40.  
  41. case 'x':
  42. flag = 2;
  43. break;
  44.  
  45. case 'N':
  46. bSize = strtof(argv, &pEnd)*1024;
  47. break;
  48.  
  49. }
  50.  
  51. }
  52. printf("input: %s\noutput: %s\n",*in_file,*out_file);
  53. int* fd_in = open(in_file, O_RDONLY);
  54. int s = bSize;
  55. char buf[s];
  56. read_buf = read( fd_in, buf, bSize );
  57. int* fd_out = open(out_file, O_WRONLY);
  58. write_buf = write( fd_out, buf, bSize );
  59. close(fd_in);
  60. close(fd_out);
  61. return 0;
  62.  
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement