linux仿写chmod命令

代码如下:

#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;
}

(0)

相关推荐

  • 修改linux文件权限命令:chmod命令详解

    Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作.可执行权限表示允许将该文件作为一个程序执行.文件被创建时,文件所有者自动拥有对该文件的读.写和可执行权限,以便于对文件的阅读和修改.用户也可根据需要把访问权限设置为需要的任何组合. 有三种不同类型的用户可对文件或目录进行访问:文件所有者,同组用户.其他用户.所有者一般是文件的

  • linux shell在while中用read从键盘输入的实现

    系统是ubuntu 14.04 64bit,之前曾想安装Stream来玩dota2,但最终没成功.由于Stream只有32bit,安装Stream时也安装了大量32bit的库.删除Stream后,这些库也一直没管,今天忽然心血来潮,想清理一下系统,把不必要的32bit库都干掉. dpkg -l | grep "i386"看一下,32bit库太多,一个个敲sudo apt-get purge xxx显然有点累,分析了一下输出, 格式大概如下: rc libkrb5support0:i38

  • Linux xargs命令详细介绍

     Linux xargs命令 1.功能: xargs可以将stdin中以空格或换行符进行分隔的数据,形成以空格分隔的参数(arguments),传递给其他命令.因为以空格作为分隔符,所以有一些文件名或者其他意义的名词内含有空格的时候,xargs可能会误判.简单来说,xargs是给其他命令传递参数的一个过滤器,是构建单行命令的重要组件之一. 之所以要用到xargs,是因为由于很多命令不支持使用管道|来传递参数,例如: find /sbin -perm +700 |ls -l //这个命令是错误,因

  • linux线程的取消(终止)方法

    关键: pthread_cancel函数发送终止信号 pthread_setcancelstate函数设置终止方式 pthread_testcancel函数取消线程(另一功能是:设置取消点) 1 线程取消的定义 一般情况下,线程在其主体函数退出的时候会自动终止,但同时也可以因为接收到另一个线程发来的终止(取消)请求而强制终止. 2 线程取消的语义 线程取消的方法是向目标线程发Cancel信号(pthread_cancel函数发送Cancel信号),但如何处理Cancel信号则由目标线程自己决定,

  • 一天一个shell命令 linux文本操作系列-chmod命令用法

    先来熟悉下权限,以上一个例子comm下的文档为例 $ls -l -rw-rw-r-- 1 yjplxq yjplxq   36  7月 30 22:40 A.txt  -rw-rw-r-- 1 yjplxq yjplxq   27  7月 30 22:41 B.txt  -rw-rw-r-- 1 yjplxq yjplxq 1231  7月 30 22:45 comm.txt  -rwxrwxr-x 1 yjplxq yjplxq    0  7月 31 11:22 comm.sh  drw-r

  • Linux查看命令之od命令详解

    od(octal dump)命令 od(octal dump)命令可以以八进制.十进制.十六进制和ASCII码的格式来显示文件或者流,它们对于访问或可视地检查文件中不能直接显示在终端上的字符(如换行符等)很有用.此外,在一些有空洞的文件中可以通过od命令查看空洞的位置. 一般使用格式: od [-aBbcDdeFfHhIiLlOosvXx] [-A base] [-j skip] [-N length] [-t type] [[+]offset[.][Bb]] [file ...] 来个简化版:

  • Linux多线程锁属性设置方法

    互斥锁是Linux下多线程资源保护的常用手段,但是在时序复杂的情况下,很容易会出现死锁的情况. 可以通过设置锁的属性,避免同一条线程重复上锁导致死锁的问题. 通过int pthread_mutexattr_settype(pthread_mutexattr_t *attr, int type)接口设置 一般是以下四种属性: PTHREAD_MUTEX_NORMAL This type of mutex does not detect deadlock. A thread attempting t

  • Linux线程退出方式总结(推荐)

    在编写多线程代码时,经常面临线程安全退出的问题. 一般情况下,选择检查标志位的方式: 在线程的while循环中,执行完例程后,都对标志位进行检查,如果标志位指示继续执行则再次执行例程,如果标志位设置为退出状态,则跳出循环,结束线程的运行. 这个标志位需要主线程(或其他线程)设置,设置后,主线程调用pthread_join接口进入休眠(接口参数指定了等待的线程控制指针),子线程退出后,主线程会接收到系统的信号,从休眠中恢复,这个时候就可以去做相关的资源清除动作. 这个方法可以保证子线程完全退出,主

  • Linux od命令详细介绍及用法实例

    Linux od命令详解 1.功能 od命令用于将指定文件内容以八进制.十进制.十六进制.浮点格式或ASCII编码字符方式显示,通常用于显示或查看文件中不能直接显示在终端的字符.od命令系统默认的显示方式是八进制,名称源于Octal Dump. 常见的文件为文本文件和二进制文件.od命令主要用来查看保存在二进制文件中的值,按照指定格式解释文件中的数据并输出,不管是IEEE754格式的浮点数还是ASCII码,od命令都能按照需求输出它们的值. 大家也可以了解一下hexdump命令,以十六进制输出,

  • 详解在Linux虚拟机下配置tomcat

    1.到Apache官网下载tomcat http://tomcat.apache.org/download-80.cgi 我下载的是tomcat8 jdk是1.8 如果你们的jdk是1.7或者1.7以下的就下载tomcat6或者tomcat7 2.把下载好的tomcat上传到Linux虚拟机下 3.去到tomcat所在的目录下解压压缩包 我的tomcat在/software目录下 解压命令:tar xzvf apache-tomcat-8.5 解压好后会多出一个文件 输入命令:ll 查看目录 接

随机推荐