Guest User

Untitled

a guest
Jul 17th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.35 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <sys/types.h>
  3. #include <sys/stat.h>
  4. #include <fcntl.h>
  5. #include <unistd.h>
  6. #include <stdlib.h>
  7. #include <errno.h>
  8. #define BUFFER 4096
  9. int main (int argc,char *argv[]){
  10. int i,j,k,l;
  11. mode_t mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH;/*Modes für das zu erstellende File setzen*/
  12. char buf[BUFFER];/*Buffer anlegen*/
  13. if (argc>2){/*Prüfung auf ausreichende Argumente*/
  14. if ((i=open(argv[1],O_RDONLY))!=-1){/*Versuch das erste File zum Lesen zu öffnen*/
  15. if((j=creat(argv[2],mode))!=-1){/*Versuch das zweite File zu erstellen*/
  16. while((k=read(i,buf,BUFFER))>0 && l!=-1){/*Versuch erstes File bis zum Ende lesen und Prüfung auf korrektes Schreiben*/
  17. l=write(j,buf,k);/*Versuch zweites File schreiben*/
  18. }
  19. if (k==-1){
  20. perror ("read");
  21. exit(1);
  22. }
  23. else if (l==-1){
  24. perror ("write");
  25. exit(1);
  26. }
  27. l=close(j);/*Kopie schliessen*/
  28. if (l==-1){
  29. fprintf(stderr,"Kopie:");
  30. perror ("close");
  31. exit(1);
  32. }
  33. }
  34. else{
  35. perror ("creat");
  36. exit(1);
  37. }
  38. l=close(i);/*Zu kopierendes File schliessen*/
  39. if (l==-1){
  40. fprintf(stderr,"Zu kopierendes File:");
  41. perror ("close");
  42. exit(1);
  43. }
  44. }
  45. else{
  46. perror("open");
  47. exit(1);
  48. }
  49. }
  50. else{
  51. fprintf(stderr,"Too few parameters for application %s\n",argv[0]);
  52. exit(1);
  53. }
  54. return 0;
  55. }
Add Comment
Please, Sign In to add comment