Advertisement
Guest User

Untitled

a guest
Nov 20th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.86 KB | None | 0 0
  1. #include <sys/stat.h>
  2. #include<fcntl.h>
  3. #include<unistd.h>
  4.  
  5. int main(int argc, char* argv[]) {
  6. int exit = 0;
  7. int in = open(argv[1], O_RDONLY);
  8. if (in == -1) {
  9. exit = 1;
  10. goto end;
  11. }
  12. int out1 = open(argv[2], O_WRONLY | O_CREAT, 0640);
  13. int out2 = open(argv[3], O_WRONLY | O_CREAT, 0640);
  14. if (out1 == -1 || out2 == -1) {
  15. exit = 2;
  16. goto end;
  17. }
  18.  
  19. ssize_t readin, reado1, reado2;
  20. char rbyte;
  21. int out;
  22.  
  23. while ((readin=read(in, &rbyte, sizeof(rbyte))) > 0) {
  24. out = ('0' <= rbyte && rbyte <= '9') ? out1 : out2;
  25. if (-1 == write(out, &rbyte, sizeof(rbyte))) {
  26. exit = 3;
  27. goto end;
  28. }
  29. }
  30. if (-1 == readin) {
  31. // exit = 3;
  32. goto end;
  33. }
  34.  
  35. end:
  36. close(in);
  37. close(out1);
  38. close(out2);
  39. return exit;
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement