linux C判断文件是否存在【转】

转自:http://blog.csdn.net/kingjo002/article/details/8442146

一、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;
}  

#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;
}  
时间: 2025-01-11 14:24:27

linux C判断文件是否存在【转】的相关文章

[转] Linux shell判断文件和文件夹是否存在

shell判断文件,目录是否存在或者具有权限 #!/bin/sh myPath="/var/log/httpd/" myFile="/var /log/httpd/access.log" #这里的-x 参数判断$myPath是否存在并且是否具有可执行权限 if [ ! -x "$myPath"]; then mkdir "$myPath" fi #这里的-d 参数判断$myPath是否存在 if [ ! -d "$m

linux下判断文件和目录是否存在

1.前言 工作中涉及到文件系统,有时候需要判断文件和目录是否存在.我结合APUE第四章文件和目录,总结一下如何正确判断文件和目录是否存在,方便以后查询. 2.stat系列函数 stat函数用来返回与文件有关的结构信息.stat系列函数有三种情况,分别对应文件名称.文件描述符和符号链接文件.stat结构描述了文件的属性,主要包括文件的类型.文件大小等等.详细stat结构如下所示: 1 struct stat { 2 mode_t st_mode; // file type & mode(permi

Linux shell判断文件和文件夹是否存在

#!/bin/sh myPath="/var/log/httpd/" myFile="/var /log/httpd/access.log" #这里的-x 参数判断$myPath是否存在并且是否具有可执行权限 if [ ! -x "$myPath"]; then mkdir "$myPath" fi #这里的-d 参数判断$myPath是否存在 if [ ! -d "$myPath"]; then mkdi

Linux下如何判断文件类型

在Linux下总共有7种文件类型,分别为: 普通文件(-) 目录文件(d), 软链接文件(l)=快捷方式, 块设备文件,二进制文件(b)   字符设备文件(c) 套接字文件(s) 管道文件(p) 其中常用的文件类型为:普通文件,目录文件和软链接文件 系统特殊文件类型为:块设备文件,字符设备文件,套接字文件,管道文件. 如何判断文件类型? 在当前目录下使用命令: ls -l,即可列出该目录下的所有文件,其第一列的第一个字母就包含了该文件的文件类型: 其第一列的长度为10位,除去第一位用于表示文件类

Linux中用st_mode判断文件类型

Linux中用st_mode判断文件类型 2012-12-11 12:41 14214人阅读 评论(4) 收藏 举报  分类: Linux(8)  C/C++(20)  版权声明:本文为博主原创文章,未经博主允许不得转载. 在Linux中,可以利用stat()函数来获取一个文件的状态 [cpp] view plain copy #include <sys/stat.h> #include <unistd.h> int stat(const char *file_name, stru

Linux 获取文件时间信息 判断文件是否存在

获取文件时间戳 (1)查看全部信息: stat e4.txt 范例: [[email protected] ~]# stat e4.txt File: “e4.txt” Size: 0 Blocks: 0 IO Block: 4096 一般空文件 Device: 806h/2054d Inode: 486265 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 500/ whuang) Access: 2002-03-23 10:

linux下使用c判断文件夹是否为空的小程序

/*自己写了一个 判断文件夹是否为空的小代码 打开文件夹的函数在man的时候要加 man 3 readdir,  */ #include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <unistd.h>#include <dirent.h>int isdirempty(char *dirname){    /* 打开要进行匹配的文件目录 */    DIR *dir =

C++ linux 判断文件是否存在

1,文件夹是否存在: 通过判断文件夹是否成功打开 来判断 DIR *dir;      if  ((dir = opendir(path)) == NULL)      {          return  0;      }     closedir(dir); 2,文件是否存在: #include<unistd.h>定义函数    int access(const char * pathname, int mode); 否存: R_OK:只是检测当前用户是否具有可读权限: W_OK:类似R

linux 判断文件夹或文件是否存在

文件夹不存在则创建 if [ ! -d "/data/" ];then mkdir /data else echo "文件夹已经存在" fi 文件存在则删除 if [ ! -f "/data/filename" ];then echo "文件不存在" else rm -d /data/filename fi 判断文件夹是否存在 if [ -d "/data/" ];then echo "文件夹存在