Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ под Linux

Войти
Регистрация
Восстановить пароль
 
ildar411
1 / 1 / 1
Регистрация: 13.10.2016
Сообщений: 9
Завершенные тесты: 1
#1

Backup - C++ Linux

19.10.2016, 21:01. Просмотров 431. Ответов 0
Метки нет (Все метки)

это код cp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#define MAX_SIZE 65536
 
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <dirent.h>
#include <string.h>
#include <stdlib.h>
#include <fcntl.h>
 
void cpy(char * from, char * to);
 
int main (int argc, char * argv[], char* envp[]) {
    if (argc < 3)
    {
        perror("Incorrect input of path");
        exit(-1);
    }
    if (!strcmp(argv[1], argv[2]))
    {
        return 0;
    }
    
    //printf ("start copying: %s to %s\n", argv[1], argv[2]);
    cpy(argv[1], argv[2]);
    
    
    return 0;
}
 
void cpy(char * from, char * to) {
    //printf("%s %s\n", from, to);
    DIR * dir;
    dir = opendir(from);
    if (!dir)
    {
        printf("No such file or directory\n");
        exit(1);
    }
    
    struct dirent * curr=readdir(dir);
    curr=readdir(dir);
    
    while ((curr=readdir(dir))!=NULL) {
        char* pathFrom = (char*)calloc(sizeof(char), (strlen(from) + strlen(curr->d_name) + 1));
        char* pathTo = (char*)calloc(sizeof(char), (strlen(to) + strlen(curr->d_name) + 1));
        strcat(strcat(strcat(pathFrom, from), "/"), curr->d_name);
        strcat(strcat(strcat(pathTo, to), "/"), curr->d_name);
        
        //printf("%s\n", pathFrom);
        
        struct stat Stat;
        stat(pathFrom, &Stat);
        if (S_ISDIR(Stat.st_mode)) {
            //printf("directory\n");
            mkdir(pathTo, Stat.st_mode);
            //printf("%s %s\n", pathFrom, pathTo);
            cpy(pathFrom, pathTo);
            
            free(pathFrom);
            free(pathTo);
           // printf("успешно\n");
            
        } else {
           // printf("file\n");
            
            int input=open(pathFrom, O_RDONLY), output=open(pathTo, O_RDWR|O_CREAT, 0666), result;
            
            int _flag=0;
            while (_flag==0) {
                char * buff=(char *)calloc(sizeof(char), MAX_SIZE);
                if ((result=read(input, buff, MAX_SIZE))==-1) {
                    printf("Error in read\n");
                    exit(-1);
                } else if ((result<MAX_SIZE)&&(result>=0)) {
                    _flag=1;
                }
                if ((result=write(output, buff, MAX_SIZE))==-1) {
                    printf("Error in write\n");
                    
                }
                free(buff);
                
                //printf("успешно\n");
                
                
            }
            free(pathFrom);
            free(pathTo);
        }
    }
}
из него надо сделать backup дополнив
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.10.2016, 21:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Backup (C++ Linux):

Need Backup - C#
Привет мне нужна Visual Studio 2005 или только Visual C# для инсталяции одной програмки, не могу нигде скачать... может ктото поможет? ...

Backup в 1С - Программы архиваторы
Добрый день! Мне надо зделать так чтобы в 19:00 отключался сетка и сохранялся база в 1С 7,7 в *.zip формате. и в 7:00 включался. ...

System backup XP - Windows XP
Вообше мой вопрос покажется вам немного глупо но попрошу меня извинит. Если я хочу сохранит копию моей системы ОС, на всякий случай -...

элементарный backup - MS Access
Подскажите , как написать процедуру простого backup'a базы - простого копирования (не репликации) в какую-нить папку - и как привязать эту...

Backup на Centos 7 - RedHat, Fedora Linux
Гугл, конечно, выдаёт по этой теме кучу мануалов, и все они разные - от написания собственных скриптов, и до установки каких-то программ....

Backup Recovery - Oracle
Privet vsem. U menya problem a s backup recpvery. Dopustim u menya est baza. Ya vzyal vse fayli (control, data, redo log, init.ora) i...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.10.2016, 21:01
Привет! Вот еще темы с ответами:

backup системы - Windows 7
Здравствуйте! Сегодня делал бекап системы, но почему-то он закончился неудачно. Пояснений никаких не было, только месаг о том что он...

Восстановление из backup - PostgreSQL
Здравствуйте! У меня есть база данных на postgresql в .backup, Вот никак не могу понять как ее восстановить. Не могли бы объяснить попроще...

Скрипт Backup - Bash
Скрипт создаст в /home/user/каталог с именемBackup-YYYY-MM-DD, где YYYY-MM-DD – дата запуска скрипта, если в/home/user/нет каталога с...

Полный Backup - FreeBSD
Друзья делаю первые шаги в данном направлении... Подскажите пож-то, как можно создать полный Backup системы на случай, если я ее...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru