0
LinuxのC++でファイルのパーミッションを変更したいと思います。ユーザーは、この構文を使用してアクセス許可を入力する必要があります。「アクセス許可を入力してください:rwx-w-r--」を端末に入力してください。C++でLinuxのファイルのパーミッションを変更する方法
ありがとうございます。
LinuxのC++でファイルのパーミッションを変更したいと思います。ユーザーは、この構文を使用してアクセス許可を入力する必要があります。「アクセス許可を入力してください:rwx-w-r--」を端末に入力してください。C++でLinuxのファイルのパーミッションを変更する方法
ありがとうございます。
#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
}
[chmodの(2) - Linuxのマニュアルページ](http://man7.org/linux/man-pages/man2/chmod.2.html)私は、構文RWXを使用することができますどのように – MikeCAT
--- --- chmodで? –
自分でそれを解析します。 – MikeCAT