1.用read函数完成文件大小计算
//read函数计算文件大小
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<head.h>
int main(int argc, const char *argv[])
{
int fd = open("cpphoto.c",O_RDONLY);
if(fd < 0)
{
ERR_MSG("open:");
return -1;
}
ssize_t res = 0;
char s[20] = "";
ssize_t sum = 0;
while(1)
{
res = read(fd,s,sizeof(s));
if(res == 0)
{
break;
}
sum += res;
}
printf("%ld",sum);
return 0;
}
运行效果:
2.用循环实现提取文件的权限
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<head.h>
#include<sys/stat.h>
#define MODE 0400
//获取文件的权限
void GetFIleInfo(char *pathname)
{
struct stat buf;
stat(pathname,&buf);
// printf("%o",buf.st_mode);
for(int i = 0;i < 9;i++)
{
switch(i % 3)
{
case 0:
if(MODE >> i & buf.st_mode)
{
printf("r");
}
else
{
printf("-");
}
break;
case 1:
if(MODE >> i & buf.st_mode)
printf("w");
else
{
printf("-");
}
break;
case 2:
if(MODE >> i & buf.st_mode)
printf("x");
else
{
printf("-");
}
break;
}
}
puts("");
}
int main(int argc, const char *argv[])
{
char s[20] = "";
printf("请输入文件路径及名称\n");
scanf("%s",s);
GetFIleInfo(s);
return 0;
}
运行效果:
思维导图