struct stat 和 stat() 的运用

#include "common.h"


#define OPEN_FILE_NAME "./stu.dat"


int main (int argc, char *argv[])
{

struct stat st;


int ret = stat(OPEN_FILE_NAME, &st);   //============ &st  因为 int stat(const char * file_name,struct stat *buf);
if(-1 == ret)
err_sys("stat")


system("ls -i stu.dat");
printf("index number=%d\n", st.st_ino);
printf("file size=%d\n", st.st_size);




system("ls -trl stu.dat");
if ( S_ISREG(st.st_mode)) //====================  S_ISREG (st_mode) 是否为一般文件 文件类型在POSIX 中定义了检查这些类型的宏定义

{
printf("Regular file\n");
}

if (S_IRUSR & st.st_mode)
{
printf("Read permission\n");
}
else if (S_IWUSR & st.st_mode)
{
printf("Write permission\n");
}


system("chmod a+w,a+r,u-r stu.dat");


system("ls -trl stu.dat");
chmod("stu.dat", S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IWGRP | S_IXGRP);
//chmod("stu.dat", 0770);
system("ls -trl stu.dat");//


if (! access("stu.dat", W_OK))
{
printf("Write permission\n");
}








return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值