se7enuts

xxxxx3333

May 31st, 2016
25
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.76 KB | None | 0 0
  1. /* Vytautas Deinis IF-4/6 Ld3 2*/
  2. /* Failas: loginas_ld3.c */
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <sys/types.h>
  6. #include <sys/stat.h>
  7. #include <fcntl.h>
  8. #include <unistd.h>
  9.  
  10. #define SIZE 1048576
  11.  
  12. int kp_test_open(const char *name);
  13. int kp_test_close(int fd);
  14. int kp_ftwinfo(const char *p, const struct stat *st, int fl, struct FTW *fbuf);
  15.  
  16. int kp_test_open(const char *name){
  17. int dskr;
  18. dskr = open( name, O_RDONLY );
  19. if( dskr == -1 ){
  20. perror( name );
  21. exit(1);
  22.  
  23. }
  24.  
  25. return dskr;
  26. }
  27.  
  28. int kp_test_close(int fd){
  29. int rv;
  30. rv = close( fd );
  31.  
  32. if( rv != 0 ) perror ( "close() failed" );
  33. else puts( "closed" );
  34. return rv;
  35. }
  36.  
  37.  
  38. int kp_ftwinfo(const char *p, const struct stat *st, int fl, struct FTW *fbuf){
  39. int failo_vardas;
  40. int failo_dydis;
  41.  
  42. // KAD PATIKRINTI AR FAILAS if(fl == FTW_F ) asdasd; else asdasd; // direktorijai FTW_D // jeigu truksta teisiu katalogui nuskaityti FTW_DNR
  43. if (stat(p, &st) == 0)
  44. failo_dydis=st.st_size;
  45.  
  46. if(failo_dydis > SIZE) {
  47. int failo_vardas = open(p,O_RDWR | O_EXCL );
  48. if( failo_vardas == -1 )
  49. {
  50. perror("nepavyko atidaryti failo");
  51. return 1;
  52. }
  53. chmod(p, S_IRUSR);
  54. printf("File %s\n", p);
  55. close(p);;
  56. }
  57.  
  58. return 0;
  59.  
  60. }
  61.  
  62.  
  63. int main(int argc, char * Argv[])
  64. {
  65. printf( "(C) 2016 Vytautas Deinis, %s\n", __FILE__ );
  66. int f1, f2, f3, f4;
  67. int rv1;
  68.  
  69. if( argc != 5 ){
  70. printf( "Naudojimas:\n %s failas_ar_katalogas\n", argv[0] );
  71. exit( 255 );
  72. }
  73.  
  74.  
  75. int i;
  76. for ( i = 1; i < 5; i++) {
  77. int f
  78. int rv;
  79. f = kp_test_open( argv[i] );
  80. rv = nftw( Argv[i], kp_ftwinfo, 50, 0 );
  81. if( rv == -1 ){
  82. perror( "nftw failed" );
  83. exit( 1 );
  84. }
  85.  
  86. kp_test_close( f );
  87. }
  88.  
  89. return 0;
  90.  
  91.  
  92. }
Add Comment
Please, Sign In to add comment