课后作业:
一:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <IOhead.h>
int main(int argc, const char *argv[])
{
int fd=open("5.png",O_RDONLY);
if(fd<0)
{
ERR_MSG("open");
return -1;
}
printf("open seccess\n");
char buf;int a=0;
while(1)
{
fflush(stdout);
ssize_t res=read(fd,&buf,sizeof(buf));
if(res == 0)
break;
if(a == 1111111)
printf("loading....\n10%%\r");
if(a == 4111111)
printf("20%%\r");
if(a == 7111111)
printf("30%%\r");
if(a == 10111111)
printf("40%%\r");
if(a == 13111111)
printf("50%%\r");
if(a == 16111111)
printf("60%%\r");
if(a == 19111111)
printf("70%%\r");
if(a == 22111111)
printf("80%%\r");
if(a == 25111111)
printf("90%%\r");
if(a == 27111111)
printf("100%%\r");
a++;
}
off_t size = lseek(fd,0,SEEK_END);
printf("size=%d\n",a);
close(fd);
return 0;
}
二:
#include <stdlib.h>
#include <string.h>
#include <IOhead.h>
void get_FilePermission(mode_t m)
{
char PER[9];int a;
putchar('-');
for(a=0;a<9;a++)
{
if((m & 1<<(8-a))!= 0)
{
switch(a%3)
{
case 0:PER[a]='r';
break;
case 1:PER[a]='w';
break;
case 2:PER[a]='x';
break;
}
}
else
PER[a]='-';
}
for(int i=0;i<9;i++)
printf("%c",PER[i]);
putchar(10);
}
int main(int argc, const char *argv[])
{
umask(0);
struct stat buf;
if(stat("3.png",&buf)<0)
{
ERR_MSG("stat");
return -1;
}
get_FilePermission(buf.st_mode);
return 0;
}
思维导图: