首页 > 编程语言 >【c&c++】 C语言:access函数的使用

【c&c++】 C语言:access函数的使用

时间:2023-02-10 15:12:46浏览次数:41  
标签:OK int 是否 c++ C语言 access 测试 权限


一、access()函数用来判断用户是否具有访问某个文件的权限(或判断某个文件是否存在).


二、需要包含#include<unistd.h>

三、参数和返回值

int access(const char *pathname,int mode)
参数:
pathname:表示要测试的文件的路径
mode:表示测试的模式可能的值有:
R_OK:是否具有读权限
W_OK:是否具有可写权限
X_OK:是否具有可执行权限
F_OK:文件是否存在
返回值:若测试成功则返回0,否则返回-1

 

四、实际测试

1、测试c代码

#include<unistd.h>
#include<stdio.h>
#include<stdlib.h>
/*
access()函数用来判断用户是否具有访问某个文件的权限(或判断某个文件是否存在). 
 int access(const char *pathname,int mode)
 参数:
 pathname:表示要测试的文件的路径
 mode:表示测试的模式可能的值有:
 R_OK:是否具有读权限
 W_OK:是否具有可写权限
 X_OK:是否具有可执行权限
 F_OK:文件是否存在
 返回值:若测试成功则返回0,否则返回-1
*/
int main(int argc,char *argv[]){
   int rt_value;
   if(argc<2){
      printf("Usage:%s filename\n",argv[0]);
      exit(1);
   }
   rt_value=access(argv[1],R_OK);
   if(rt_value==0)
         printf("File:%s can read   rt_value=%d\n",argv[1],rt_value);
    else
         printf("File:%s can't read  rt_value=%d \n",argv[1],rt_value);
 
   rt_value=access(argv[1],W_OK);
   if(rt_value==0)
         printf("File:%s can write   rt_value=%d\n",argv[1],rt_value);
    else
         printf("File:%s can't write  rt_value=%d \n",argv[1],rt_value);
 
   rt_value=access(argv[1],X_OK);
   if(rt_value==0)
         printf("File:%s can execute   rt_value=%d\n",argv[1],rt_value);
    else
           printf("File:%s can't execute  rt_value=%d \n",argv[1],rt_value);
 
   rt_value=access(argv[1],F_OK);
   if(rt_value==0)
         printf("File:%s   exist   rt_value=%d\n",argv[1],rt_value);
    else
         printf("File:%s not exist  rt_value=%d \n",argv[1],rt_value);
 
  return 0;
}

    2、编译执行

 

 

 

标签:OK,int,是否,c++,C语言,access,测试,权限
From: https://www.cnblogs.com/opensmarty/p/17108977.html

相关文章

  • 【c&c++】C语言实现判断大端小端存储方式的代码
    一、大小端简介大小端是计算机存储的两种方式。小端表示法(Little-endian):所谓的小端模式,是指数据的高位保存在内存的高地址中,而数据的低位保存在内存的低地址中,这种存储......
  • Modern C++ ——constexpr的各种用法
    ModernC++——constexpr的用法Reference《现代C++语言核心特性解析》为什么引入constexprconst可以定义常量,但也可以用来定义只读变量。const变量的值不一定是在......
  • c++指针基础
    指针是一个变量,其存储的是值的地址,而不是值本身。如何找到常规变量的地址?只需对变量应用地址运算符(&),就可以获得它的位置;intdonuts=3;&donuts就是取donuts变量的地址。......
  • 【快速学】指针是什么?指针常量、常量指针是什么?(C++)
    0、先上总结指针是什么?指针是个数据类型,它里面存储的是个地址如inta=3;,定义了一个int类型的变量a,值为3,它在内存中的地址为&a同理,int*b=3;,定义了一个int*类型的变量b......
  • c++引用lib
    如果需要引用的是第三方的lib,没有把源码引入到工程中,则需要通过传统方式引用。1.在需要引用的项目上右键属性,在vc++目录中引用目录和引用库目录。引用目录是lib头文件的......
  • C语言-基础知识
     1:*C语言是一种通用的、面向过程式的计算机程序设计语言。    C语言是一种通用的高级语言。    最新的C语言标准是C18.  2:**预处理器指令 ......
  • 【c&c++】结构 | 结构与函数 | C语言
                 ......
  • 【c&c++】C语言snprintf()函数用法
    一、函数原型snprintf(),为函数原型intsnprintf(char*str,size_tsize,constchar*format,...)。二、函数介绍将可变个参数(...)按照format格式化成字符串,然后将其......
  • C语言填空:减损法求最大公约数
    #include<stdio.h>//<<九章算术>>更相减损法:可以用来求两个数的最大公约数,即“可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也。//以等数约之。///第......
  • c++17区域锁std::scoped_lock
    template<class...MutexTypes>classscoped_lock;(sincec++17)作用同时持有一个或多个Mutex的RAII机制的mutex包装器,可以一次性获取多个mutex,避免发生死锁。当......