chmod.c

来自「在linux9中实现修改文件权限」· C语言 代码 · 共 73 行

C
73
字号
#include <sys/stat.h>#include <stdio.h>#include <sys/types.h>#include <string.h>int main(int argc,char *argv[]){    int    i;    mode_t mode;    if(argc < 3)    {       if(argc == 2)           if(strcmp(argv[1],"--help")==0)           {                  printf("Usage:chmod Mode File...\n");                exit(0);           }        printf("chmod:too few argument\n");       printf("Try 'chmod --help' for more information.\n");       exit(0);          }    if(argv[1][0] == '4')       mode = S_IRUSR;    else if(argv[1][0] == '6')       mode = S_IRUSR|S_IWUSR;    else if(argv[1][0] == '5')       mode = S_IRUSR|S_IXUSR;    else if(argv[1][0] == '7')       mode = S_IRWXU;    else if(argv[1][0] == '2')       mode = S_IWUSR;    else if(argv[1][0] == '3')       mode = S_IWUSR|S_IXUSR;    else if(argv[1][0] == '1')       mode = S_IXUSR;    if(argv[1][1] == '4')       mode |=S_IRGRP;    else if(argv[1][1] == '6')       mode |=S_IRGRP|S_IWGRP;    else if(argv[1][1] == '5')       mode = S_IRGRP|S_IXGRP;    else if(argv[1][1] == '7')       mode |= S_IRWXG;    else if(argv[1][1] == '2')       mode |= S_IWGRP;    else if(argv[1][1] == '3')       mode |= S_IWGRP|S_IXGRP;    else if(argv[1][1] == '1')       mode |= S_IXGRP;    if(argv[1][2] == '4')       mode |=S_IROTH;    else if(argv[1][2] == '6')       mode |=S_IROTH|S_IWOTH;    else if(argv[1][2] == '5')       mode = S_IROTH|S_IXOTH;    else if(argv[1][2] == '7')       mode |= S_IRWXO;    else if(argv[1][2] == '2')       mode |= S_IWOTH;    else if(argv[1][2] == '3')       mode |= S_IWOTH|S_IXOTH;    else if(argv[1][2] == '1')       mode |= S_IXOTH;        for(i=2;i<argc;i++)    if(chmod(argv[i],mode)<0)      {         printf("chmod error.\n");         exit(0);      }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?