Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <dirent.h>
- #include <fcntl.h>
- #include <sys/stat.h>
- #include <unistd.h>
- #include <string.h>
- int main(int argc, char *argv[])
- {
- if(argc != 2)
- {
- printf("Usage: %s <dir> <fis>\n",argv[0]);
- exit(EXIT_FAILURE);
- }
- DIR *directory;
- if((directory=opendir(argv[1])) < 0)
- {
- printf("Eroare la deschiderea directorului sau parametrul dat nu e un director\n");
- exit(EXIT_FAILURE);
- }
- int f;
- if((f=open(argv[2],O_WRONLY)) < 0)
- {
- printf("Eroare la deschiderea fisierului pentru scriere sau parametrul dat nu e un fisier\n");
- exit(EXIT_FAILURE);
- }
- struct dirent *dir_info;
- struct stat file;
- char buff[512];
- while((dir_info=readdir(directory)) != NULL)
- {
- int rez;
- if ((rez = stat(dir_info->d_name, &file)) > 0)
- {
- if (S_ISREG(file.st_mode) && file.st_blocks > 2)
- {
- snprintf(buff, sizeof(buff), "File %s has %d blocks\n", dir_info->d_name, (int)file.st_blocks);
- printf("%s", buff);
- write(f, buff, strlen(buff));
- }
- }
- }
- closedir(directory);
- close(f);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement