我正在创建一个基本的 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."
.