我正在嘗試複製程序。它類似於linux中的cp函數。我可以使用./copy file1 file2成功複製一個文件,但不知怎的,來自源的權限不會複製到目標。有誰知道如何做到這一點?示例和代碼如下所示:)Unix:複製原始權限的文件C
我的文件和他們的原始權限。
成功複製文件但未複製權限。
#define buff_s 4096
#define mod 0644
void printError(char *, char *);
main(int ac, char *txts[])
{
int input, output, n_chars;
char buf[buff_s];
struct stat file1;
struct stat file2;
stat(txts[1], &file1);
stat(txts[2], &file2);
if ((input=open(txts[1], O_RDONLY)) == -1)
printError("error", av[1]);
if ((output=creat(txts[2], mod)) == -1)
printError("error", txts[2]);
還要注意,'read()'和'write()'返回'ssize_t'而不是'int'。他們是不一樣的。 –
謝謝你指出。 – mmm
Garg365,我會嘗試你提供的方法,我認爲它也會起作用 – mmm