描述:给出一个文件的绝对路径,判断该文件是否是目录文件
要求:将文件的绝对路径做输入参数,打印信息表明该文件是否为目录
知识点:获取文件的属性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 ;
}