重点介绍的是linux 文件权限管理的chmod函数
函数原型
#include<sys/stat.h>
demo:
vim my_chmod.c
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<sys/stat.h>
int main(int argc ,char **argv){
int mod,mod_u,mod_g,mod_o;
char *path;
if(argc<3){//检查参数合法性
printf("%s <chmod num><path>\n",argv[0]);
exit(0);
}
mod=atoi(argv[1]);//将字符串转换成整数
if(mod>777||mod<0){
printf("mod num error");
exit(0);
}
mod_u=mod/100;//所有者权限
mod_g=(mod-mod_u*100)/10;//所属组权限
mod_o=mod-mod_u*100-mod_g*10;//其他用户权限
mod=mod_u*8*8+mod_g*8+mod_o;//八进制转换
path=argv[2];
if(chmod(path,mod)==-1){
printf("chmod error");
exit(0);
}
编译测试
gcc -o my_chmod my_chmod.c
./my_chmod 777 1.txt