C 使用Stat(2)与不复制的文件进行比较

C 使用Stat(2)与不复制的文件进行比较,c,C,我正在学习C语言,。使用Stat(2)系统调用如何比较两个文件st_ino(Inodes)和st_dev(device),如果相同,则不将文件从源复制到目标 我在网上找不到任何好的例子 我正在看这段代码您已经知道如何做了,请尝试将您的想法转化为代码: struct stat src, dst; int err; err = stat(src_file, &src); if (err < 0) { perror("stat"); exit(1); } err = st

我正在学习C语言,。使用Stat(2)系统调用如何比较两个文件st_ino(Inodes)和st_dev(device),如果相同,则不将文件从源复制到目标

我在网上找不到任何好的例子


我正在看这段代码

您已经知道如何做了,请尝试将您的想法转化为代码:

struct stat src, dst;
int err;
err = stat(src_file, &src);
if (err < 0) {
    perror("stat");
    exit(1);
}
err = stat(dst_file, &dst);
if (err < 0) {
    perror("stat");
    exit(1);
}
if ((src.st_dev == dst.st_dev) && (src.st_ino == dst.st_ino)) {
    // same file, skip copy
}
// copy the file
struct stat src,dst;
INTERR;
err=stat(src_文件,&src);
如果(误差<0){
佩罗(“stat”);
出口(1);
}
err=stat(dst_文件和dst);
如果(误差<0){
佩罗(“stat”);
出口(1);
}
如果((src.st_dev==dst.st_dev)和&(src.st_ino==dst.st_ino)){
//同一文件,跳过复制
}
//复制文件

查看

感谢您的网站!:)嘿,我不知道我做错了什么,但我已经把如果(src.etc,我做了printf语句,说文件是相同的,然后退出,否则我就把copy语句放进去。如果我把同一个文件src复制到同一个文件,它似乎会工作。dsc会给我printf语句,但它也试图复制它。退出还不够吗?@josh
exit
会导致程序终止。这一定是其他原因。噢W哎呀,我发现了我的错误,我在中有错误的语句,否则应该是O_create语句:)!