linux仿写chmod命令

(编辑:jimmy 日期: 2024/12/25 浏览:2)

复制代码 代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<sys/stat.h>
int main(int argc,char **argv)
{
 int mode;
 int mode_u;
 int mode_g;
 int mode_o;
 char *path;
 if(argc<3)
 {
  printf("%s <mode num> <target file>\n",argv[0]);;
  exit(0);
 }

 mode = atoi(argv[1]);
 if(mode>777||mode<0)
 {
  printf("mode num error");
  exit(0);
 }
 mode_u = mode/100;
 mode_g = (mode- mode_u*100)/10;
 mode_o = mode -mode_u*100-mode_g*10;
 mode = mode_u*8*8+mode_g*8+mode_o;
 path = argv[2];
 if(chmod(path,mode)==-1)
 {
  perror("chmod error");
  exit(1);
 }
 return 0;
}