NYOJ 1307 Linux的文件权限对不对?
2017-11-28 14:38
204 查看
Linux的文件权限对不对?
时间限制:1000 ms | 内存限制:65535 KB难度:2
描述
在还没给deepin做dde的arch移植之前,felixonmars迷上了Linux的命令行,因为这看起来特别炫,不用鼠标、只是在键盘里输入字符也能使用电脑。虽然界面在发展,但是felixonmars还是很努力地学习使用纯字符的命令。 最近cxbii小浣熊和jingle格格巫教会了felixonmars两个命令(假设felixonmars已经在 /home 目录下新建了一个 ACM.txt 的文件。)
(一)ls -l ACM.txt
(二)chmod 【***】 ACM.txt
第一个命令会显示ACM.txt这个文件的属性。【r】指“读”权限,【w】指“写”权限,【x】指“执行”权限,【-】指没有任何权限。 显示的结果例如“-rw-rw-r--”,从第二个字符开始,每三个字符为一组,第一组是felixonmars的权限,第二组是felixonmars所属组的权限,第三组是其他人的权限。(第一个字符必须是‘-’) 第二个命令可以改变文件的权限,【***】指一个三位数。第一个数字指felixonmars的权限,第二个指felixonmars所属组的权限,第三个指其他人的权限。
数字与权限表示的对应关系如下(注意没有 --- = 0 的对应关系) r-- = 4 -w- = 2 --x = 1 rw- = 6 r-x = 5 -wx = 3 rwx = 7
输入输入文件的第一行是一个整数T,表示有T组数据。 接下来是T组数据,每个数据有两行,第一行是命令(二)中的数字,第二行是表示文件权限的字符串。
输出数字和字符串表示含义一致,则输出“Yes”(不带双引号),否则输出“No”
样例输入
4 666 -rw-rw-rw- 777 wrwxrwxrwx 888 -r--r--r-- 111 -r--r--r-x
样例输出
Yes No No No
犯了低级错误,纠缠了很久,
#include<iostream>
#include<map>
using namespace std;
int main() {
map<int, string> p;
p[4] = "r--"; p[2] = "-w-"; p[1] = "--x"; p[6] = "rw-";
p[5] = "r-x"; p[3] = "-wx"; p[7] = "rwx";
int n;
cin >> n;
while(n--) {
int mark = 1;
string letter, s, num;
cin >> num >> letter;
if(letter[0] != '-') mark = 0;
else {
for(int i = 1, j = 0; i < letter.size(); i += 3) {
if(p[num[j]-'0'] != letter.substr(i, 3))
mark = 0;
j++;
}
}
if(mark) cout << "Yes" << endl;
else cout << "No" << endl;
}
}
相关文章推荐
- Linux C 函数参考(文件权限控制)
- linux中如何取得一个文件的权限?
- Linux - 文件权限
- linux下文件的权限
- 04 Linux系统管理—(管理用户和文件权限)
- Linux&Android 的文件权限和进程权限
- linux文件权限学习小结
- linux如何修改文件或目录的权限(chmod)
- setfacl实现linux文件权限继承
- Linux文件权限概念
- Linux 下创建一个文件,打开一个目录需要什么权限呢?
- Linux文件权限
- Linux 文件管理权限
- linux文件权限以及目录结构
- Linux下更改目录及其下的子目录和文件的访问权限
- linux中改变文件权限和属性
- Linux_文件权限
- Linux下用户组、文件权限详解
- linux之拷贝文件/备份文件;按照原来的权限和日期拷贝.
- Linux &quot;ls -l&quot;文件列表权限详解