我必须创建一个程序来创建一个新程序,或者使用现有文件( infile )的内容覆盖现有( outfile )文件。对我来说,这很容易,我已经做到了。但是我的问题是, outfile 需要具有与 infile 相同的权限,而我不知道该怎么做。
programName infile外文件
我的代码如下所示,我认为我需要使用stat()或fstat(),但我不确定如何使用。
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/stat.h>
int main(int argc, char** argv) {
char* infile = argv[1];
char* outfile = argv[2];
int in = open(infile, O_RDONLY, S_IRUSR);
int out = open(outfile, O_CREAT | O_WRONLY, S_IRUSR | S_IWUSR);
long len = lseek(in, 0L, SEEK_END);
char buf[len];
lseek(in, 0L, SEEK_SET);
read(in, &buf, len);
write(out, &buf, len);
close(in);
close(out);
return 0;
}
我知道现在我已经手动设置了权限。