2013-08-30 58 views
0

如何使用C查找文件的許可權?使用C查找文件許可C

我正在製作一個文件複製程序,一切正常,除非它不復制新文件的文件權限。

現在我正在使用fcntl.h和open()和creat()來打開文件並創建目標文件,但它正在丟失許可證。

我希望能夠讀取文件權限的命令,如0644或0777,然後我在creat()中使用該數字來創建該文件。這樣的命令是否存在?

編輯 謝謝所有幫助,我得到了它與下面的代碼

struct stat status; 
mode_t permissions; 
stat("path_to_file", &status); 
permissions = status.st_mode;' 

然後用穿心蓮內工作的權限();

+1

如何['stat' /'lstat'](http://pubs.opengroup.org/onlinepubs/9699919799/functions/stat.html)或['fstat'] (http://pubs.opengroup.org/onlinepubs/9699919799/functions/fstat.html)? –

回答

1

使用stat

上面的鏈接也會爲您提供示例代碼!

/* Print out type, permissions, and number of links. */ 
printf("%10.10s", sperm (statbuf.st_mode)); 
printf("%4d", statbuf.st_nlink); 
0

here查找

struct stat sb; 
    mode_t file_permision; // read file permission before copy 

    if (stat("source_file_name", &sb) == -1) { 
     exit(EXIT_FAILURE); 
    } 

file_permision = sb.st_mode; 

//Then create new file 

creat("destination_file_name", file_permision); 
+0

謝謝,我用你的例子使用下面的代碼來處理它。 'struct stat status; mode_t權限; stat(argV [i],&status); permissions = status.st_mode;' 然後使用creat()中的權限; – user2661167