判断文件是否是目录文件

描述:给出一个文件的绝对路径,判断该文件是否是目录文件

要求:将文件的绝对路径做输入参数,打印信息表明该文件是否为目录

知识点:获取文件的属性int stat(const char *restrict pathname, struct stat *restrict buf)

#include <sys/stat.h> 

#include <unistd.h>

stat结构体:    

struct stat {             

mode_t     st_mode;       //文件的类型和存取的权限              

ino_t      st_ino;       //inode节点号              

dev_t      st_dev;        //设备号码                

dev_t      st_rdev;       //特殊设备号码            

nlink_t    st_nlink;      //文件的连接数               

uid_t      st_uid;        //文件所有者            

gid_t      st_gid;        //文件所有者对应的组           

off_t      st_size;       //普通文件,对应的文件字节数             

time_t     st_atime;      //文件最后被访问的时间               

time_t     st_mtime;      //文件内容最后被修改的时间             

time_t     st_ctime;      //文件状态改变时间               

blksize_t st_blksize;    //文件内容对应的块大小           

blkcnt_t   st_blocks;     //文件内容对应的块数量        

}


代码:

#include<stdio.h>
#include<stdlib.h>
#include<sys/stat.h>
#include<unistd.h>
#include<errno.h>
int main(int argc,char*argv[])
{
    struct stat buf;
    int res;
    if(argc!=2)
    {
        printf("参数不正确!正确格式:./main filepath\n");
        exit(1);
    }
    stat(argv[1],&buf);
    res=buf.st_mode&S_IFDIR;
    if(res==S_IFDIR)
    {
        printf("%s为目录\n",argv[1]);
    }
    else
    {
        printf("%s不是目录\n",argv[1]);
    }
    return 0 ;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值