C에서 쉘 rsync 명령 호출

C에서 쉘 rsync 명령 호출

기본적인 Linux 명령을 더 잘 배우기 위해 기본 C 파일을 만들고 있습니다. tar 백업 기능을 구현하려고 합니다. 내 쉘에서 작동할 수 있도록 C(아직 C를 배우고 있음)로 구현하려고 합니다.

내 질문은 C에서 디렉토리 백업을 만드는 방법입니다.

이것이 내가 지금까지 가지고 있는 전부입니다(리눅스 명령만)

암호

#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");
}

답변1

다음과 같이 시도해 볼 수 있습니다.

#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");
}

프로그램에서 호출되는 첫 번째 함수는 이름이 지정된 함수이므로 main이름을 바꾸었지만 이름을 변경하고 에서 함수를 호출할 수 있습니다 main.

귀하의 용어에 인용문이 없습니다 define. 이 system함수는 문자열을 인수로 받아들이고 문자열을 전달하는 쉘을 호출합니다.

C/C++에서 문자열에는 문자열 사이에 공백/탭/줄바꿈만 포함됩니다. 예를 들어 다음과 같이 작성할 수 있습니다.

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

당신은 결국 그것을 얻을 것이다 str = "The quick brown fox.".

관련 정보