从 C 调用 shell rsync 命令

从 C 调用 shell rsync 命令

我正在创建一个基本的 C 文件,以便更好地学习基本的 Linux 命令。我正在尝试实现一个 tar 备份功能。我正在努力用 C 实现它(仍在学习 C),以便它可以与我的 shell 一起工作。

我的问题,如何在 C 中创建目录的备份

这就是我到目前为止所拥有的一切(只是 Linux 命令)

代码

#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函数将接受一个字符串作为参数,并调用您的 shell 将字符串传递给它。

在 C/C++ 中,字符串之间仅包含空格/制表符/换行符。例如,你可以写:

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

你最终会得到str = "The quick brown fox.".

相关内容