`

linux下的access()函数判断文件是否存在、打印时间

    博客分类:
  • C
 
阅读更多

一、access函数

功能描述:
检查调用进程是否可以对指定的文件执行某种操作。
 
用法:
#include <unistd.h>
#include <fcntl.h>

int access(const char *pathname, int mode);  
 
参数:
pathname: 需要测试的文件路径名。  
mode: 需要测试的操作模式,可能值是一个或多个R_OK(可读?), W_OK(可写?), X_OK(可执行?) 或 F_OK(文件存在?)组合体。
 
返回说明:
成功执行时,返回0。失败返回-1,errno被设为以下的某个值
EINVAL: 模式值无效  
EACCES: 文件或路径名中包含的目录不可访问
ELOOP : 解释路径名过程中存在太多的符号连接
ENAMETOOLONG:路径名太长
ENOENT:  路径名中的目录不存在或是无效的符号连接
ENOTDIR: 路径名中当作目录的组件并非目录
EROFS: 文件系统只读
EFAULT: 路径名指向可访问的空间外
EIO:  输入输出错误
ENOMEM: 不能获取足够的内核内存
ETXTBSY:对程序写入出错

 

例如:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>

int main()
{
	if((access("test.c",F_OK))!=-1)
	{
		printf("文件 test.c 存在.\n");
	}
	else
	{
		printf("test.c 不存在!\n");
	}

	if(access("test.c",R_OK)!=-1)
	{
		printf("test.c 有可读权限\n");
	}
	else
	{
		printf("test.c 不可读.\n");
	}

	if(access("test.c",W_OK)!=-1)
	{
		printf("test.c 有可写权限\n");
	}
	else
	{
		printf("test.c 不可写.\n");
	}
	if(access("test.c",X_OK)!=-1)
	{
		printf("test.c 有可执行权限\n");
	}
	else
	{
		printf("test.c 不可执行.\n");
	}

	return 0;
}

 运行结果如下:


二、如果在C中打印当前时间

下面是一个打印系统当前时间的小例子,函数的语法暂时就不列出了,只是会用这些就差不多了

#include <stdio.h>
#include <time.h>
int main()
{
	time_t now = time(NULL);
	char buf[25];
	strftime(buf,24,"%Y%m%d",localtime(&now));
	printf("%s\n",buf);

	strftime(buf,24,"%Y-%m-%d %H:%M:%S",localtime(&now));
	printf("%s\n",buf);

	strftime(buf,24,"%y%m%d %H:%M:%S",localtime(&now));
	printf("%s\n",buf);

	strftime(buf,24,"%y%m%d",localtime(&now));
	printf("%s\n",buf);

	strftime(buf,24,"%H:%M:%S",localtime(&now));
	printf("%s\n",buf);
	return 0;
}

 运行结果:


  • 大小: 14.6 KB
  • 大小: 7 KB
分享到:
评论

相关推荐

    C语言中access/_access函数的使用实例详解

    在这个实例中,我们使用access函数判断文件“testfile”是否存在。如果文件存在,函数返回0,我们打印“File exists”;否则,函数返回-1,我们打印“File does not exist”。 _Access函数 在Windows下,access...

    LINUX下c语言读取文件信息

    总之,在Linux下用C语言读取文件信息,主要涉及`&lt;sys/stat.h&gt;`头文件中的`stat()`函数,通过它获取的`struct stat`结构体包含了丰富的文件属性。理解并熟练运用这些函数对于进行系统级编程和文件管理至关重要。在yjl...

    获取与修改文件创建、修改和访问时间

    请注意,修改文件的时间戳可能会影响到文件的版本控制系统,例如Git,因为它依赖于这些时间戳来判断文件是否被修改。在某些情况下,这可能会导致意外的结果,因此在实际操作时需谨慎。 了解如何获取和修改文件的...

    一段代码演示C++根据路径判定是目录还是文件,文件搜索,文件夹遍历等问题.pdf

    使用`_access`函数检查文件或目录是否存在。参数`06`代表读写权限,如果返回-1,表示路径不存在。 7. **C++标准库的使用**: 这段代码还使用了C++标准库,如`&lt;iostream&gt;`(输入/输出流)、`&lt;string&gt;`(字符串操作...

    使用Inotify 监控目录与文件的方法详解

    Inotify 是 Linux 内核提供的一种文件系统事件监控机制,它允许程序监控文件或目录的改变,例如创建、删除、修改、移动...Inotify 是 Linux 下非常强大的工具,对于需要实时跟踪文件系统变化的应用场景提供了有效支持。

    鸟哥的私房菜

    1. **ACL (Access Control List)**:用于设置文件或目录的访问控制列表。 2. **alias**:创建自定义命令别名。 3. **anacron**:用于执行周期性任务,特别是当机器不总是开机时。 4. **apropos**:搜索命令手册页中...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例240 判断文件是否被修改 312 实例241 重新定义上传文件的名称 313 实例242 读取远程文件中的数据 314 实例243 删除指定目录下的所有.ini文件 315 实例244 将文本文件中数据存储到数据库中 316 4.5 文件的压缩与...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例240 判断文件是否被修改 312 实例241 重新定义上传文件的名称 313 实例242 读取远程文件中的数据 314 实例243 删除指定目录下的所有.ini文件 315 实例244 将文本文件中数据存储到数据库中 316 4.5 文件的压缩与...

    Foxpro 开发答疑160问

    69. 如何进行DOS/Windows文本文件与UNIX/Linux文本文件的相互转换 257 70. 如何遍历磁盘中的所有目录及文件 258 71. 如何使用低级函数读写文件 263 72. 如何为Visual FoxPro应用程序增加文件压缩功能 271 73. ...

    JAVA上百实例源码以及开源项目源代码

    像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时的动作等,都可在本源码中得以体现。 Java编写的显示器显示模式检测程序 2个目标文件 内容...

    2021-2022计算机二级等级考试试题及答案No.14538.docx

    - **Output模式**:可以用于写入文件,但如果文件已存在则会覆盖原有内容。 - **Random模式**:允许随机访问文件中的数据。 - **Append模式**:在文件末尾追加内容。 ### 6. SQL命令 **知识点概述:** - SQL...

    资料python软件编程等级考试(一级)编程实操题05word练习.pdf

    12. 输出函数:在Python中,打印一行文字需要用到print()函数。 13. 服务器操作系统:Windows和Linux常被用作服务器操作系统,但题目中并未列出所有选项,无法确定正确答案。 14. Python输入函数:Python的输入...

    the awk programming language代码相关

    在Linux和Unix系统中,awk被广泛用于处理和解析日志文件、CSV数据以及其他格式的文本文件。 awk的工作原理是基于模式匹配,它会扫描输入文件的每一行,寻找匹配特定模式的行,并对这些行执行相应的动作。这些模式...

    2021-2022计算机二级等级考试试题及答案No.454.docx

    20. **字符判断**:在C语言中,检查字符变量`c`是否为小写字母,正确表达式是`(c &gt;= 'a') && (c )`。 21. **表达式计算**:在C语言或其他类似的编程语言中,整数除法会向下取整,所以`3/6 * 5`的结果为0。 22. **...

    vc++ 开发实例源码包

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    vc++ 应用源码包_1

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    vc++ 应用源码包_2

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    vc++ 应用源码包_6

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

Global site tag (gtag.js) - Google Analytics