Chamando um comando shell rsync de C

0

Estou criando um arquivo C básico para aprender um pouco melhor os comandos básicos do Linux. Eu estou tentando implementar uma função de backup de alcatrão. Eu estou lutando para implementá-lo em C (ainda aprendendo C) para que ele funcione com meu shell.

Minha pergunta, Como posso criar um backup do meu diretório em C

Isto é tudo que tenho até agora (Apenas o Comando Linux)

Código

#define ROOT /home/network
#define DESTIN /home/network/backups
int shell_backUp(char **args)
{
    printf("Backing Up....");
    rsync -avu $ROOT $DESTIN;
    printf("Back Up complete");
}
    
por Hayes121 28.10.2015 / 15:51

1 resposta

2

Você pode tentar algo assim:

#include<stdio.h>

#define ROOT "/home/network"
#define DESTINY ROOT"/backups"

int main()
{
    printf("Backing Up....\n");
    system("rsync -avu " ROOT " " DESTINY);
    printf("Back Up complete\n");
}

A primeira função que é chamada em seu programa é uma função chamada main , é por isso que eu substituí o nome, mas você pode mudar isso e chamar sua função de main .

Em suas cláusulas define , as citações estavam faltando. A função system terá uma string como argumento e chamará seu shell passando sua string para ele.

Em C / C ++, as cadeias com apenas espaços / tabulações / linhas de interrupção entre elas são concatenadas. Por exemplo, você poderia escrever:

const char* str = "The " "quick "
"brown "
"fox.";

E você acabaria com str = "The quick brown fox." .

    
por 28.10.2015 / 17:01

Tags