2016-05-15 44 views
0

我想改變一個文件的權限,在Linux下C++在Linux中文件的權限。用戶必須使用以下語法輸入權限:「請在終端中輸入權限:rwx-w-r--」。如何改變與C++

感謝您的幫助。

+4

[CHMOD(2) - Linux的手冊頁(http://man7.org/linux/man-pages/man2/chmod.2.html) – MikeCAT

+0

如何使用語法的rwx --- ---用chmod ?? –

+3

自己解析一下。 – MikeCAT

回答

4
#include <sys/types.h> 
#include <sys/stat.h> 

int main() { 
    chmod("./myfile", S_IRWXU); // enables owner to rwx file 
} 

查看man 2 chmod瞭解更多詳情。

如果問題是如何解析形式爲「rwx-w-r--」的9個字符的字符串,請認識到權限是以int形式編碼的。如果有一點打開,則該權限處於打開狀態。下面的代碼將把你的字符串,把它變成位,以明顯的方式...沒有驗證等完成。這是一個概念驗證。

#include <cstdio> 
#include <sys/types.h> 
#include <sys/stat.h> 

int parse(char* perms) { 
    int bits = 0; 
    for(int i=0; i<9; i++){ 
    if (perms[i] != '-') { 
     bits |= 1<<(8-i); 
    } 
    } 
    return bits; 
} 
int main() { 
    char perms[]="rwx-w-r--"; 
    int exmp = S_IRWXU | S_IWGRP | S_IROTH; 
    printf("%d %d\n", parse(perms), exmp); 
    // outputs 468 468 
}