Advertisement
Guest User

Untitled

a guest
Jun 28th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.87 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <sys/types.h>
  3. #include <sys/dir.h>
  4. #include <unistd.h>
  5.  
  6. char *dirIn,*dirOut;
  7.  
  8.  
  9. void copy(DIR *dir1)
  10. {
  11.  
  12. struct dirent *dir;
  13. while (1)
  14. {
  15. dir=readdir(dir1);
  16. if (dir==NULL)
  17. {
  18. printf("end read directory\n");
  19. break;
  20. }
  21.  
  22. else
  23. {
  24. if (dir->d_type==4)
  25. {
  26. printf("ololo=%s\n",dir->d_name);
  27. char path1[255];
  28. char path2[255];
  29. sprintf(path1,"%s/%s",dirIn,dir->d_name);
  30. sprintf(path2,"%s/%s",dirOut,dir->d_name);
  31. printf("DIROUT=%s\n",dirOut);
  32. int pid=fork();
  33. if(pid==0)
  34. {
  35. execlp("/bin/mkdir","/bin/mkdir",dirOut,NULL);
  36. }
  37. //copy(opendir(path));
  38. }
  39. else if(dir->d_type==8)
  40. {
  41.  
  42. printf("GOIN TO COPY THIS %s\nDIROUT=%s\n",dir->d_name,dirOut);
  43. char path1[255];
  44. char path2[255];
  45. sprintf(path1,"%s/%s",dirIn,dir->d_name);
  46. sprintf(path2,"%s/%s",dirOut,dir->d_name);
  47. int pid=fork();
  48. if(pid==0)
  49. {
  50. execlp("/bin/cp","/bin/cp",path1,dirOut,NULL);
  51. }
  52. }
  53. else ;
  54. }
  55. }
  56. }
  57.  
  58.  
  59.  
  60. void zip(DIR *dir1)
  61. {
  62. struct dirent *dir;
  63. while (1)
  64. {
  65.  
  66. dir=readdir(dir1);
  67. if (dir==NULL)
  68. {
  69. printf("end read directory\n");
  70. break;
  71. }
  72. else
  73. {
  74. char path1[255];
  75. char path2[255];
  76. sprintf(path1,"%s/%s",dirIn,dir->d_name);
  77. sprintf(path2,"%s/%s",dirOut,dir->d_name);
  78. int pid=fork();
  79. if(pid==0)
  80. {
  81. execlp("gzip","gzip",path2,NULL);
  82. }
  83. }
  84. }
  85. }
  86.  
  87. int main(int argc, char *argv[])
  88. {
  89. struct dirent *dir;
  90. DIR *dir1,*dir2;
  91. if (argc<3)
  92. {
  93. printf ("Less than 2 arguments\n");
  94. }
  95. else if(argc>3)
  96. {
  97. printf ("More than 2 arguments\n");
  98. }
  99. else
  100. {
  101. dirIn=argv[1];
  102. dirOut=argv[2];
  103. printf ("%s %s\n", dirIn, dirOut);
  104. }
  105. copy (opendir(dirIn));
  106. sleep (1);
  107. zip (opendir(dirOut));
  108. closedir(dir1);
  109. closedir(dir2);
  110. return 0;
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement