2.
#include "myhead.h"
int main(int argc, const char *argv[])
{
int fd=-1;//打开图片
if((fd=open("./mouse.bmp",O_RDWR ))==-1){
perror("open error");
return -1;
}
int bmpsize=0;
lseek(fd,2,SEEK_SET);//读取图片的大小,需要将光标向后偏移2个字节
read(fd,&bmpsize,sizeof(int));//读出图片的大小
printf("bmpsize=%d\n",bmpsize);
lseek(fd,54,SEEK_SET);//前54字节是文件头和信息头所占空间,需要将光标向后偏移54字节,再操作
unsigned char color[3]={255,255,255};//定义一个颜色,白
for(int i=0;i<75;i++){
for(int j=0;j<600;j++){
write(fd,color,sizeof(color));
}
}
close(fd);
return 0;
}
3..
#include "myhead.h"
int main(int argc, const char *argv[])
{
if(argc!=2){
write(2,"input file error\n",strlen("input file error\n"));
write(2,"usage:./a.out filename\n",strlen("usage:./a.out filename\n"));
return -1;
}
struct stat st;
if(stat(argv[1],&st)==-1){
perror("stat error");
return -1;
}
switch(st.st_mode&S_IFMT){
case S_IFSOCK:
printf("这是一个套接字文件\n");
break;
case S_IFLNK:
printf("这是一个链接文件\n");
break;
case S_IFREG:
printf("这是一个普通文件\n");
break;
case S_IFBLK:
printf("这是一个快设备文件\n");
break;
case S_IFDIR:
printf("这是一个块设备文件\n");
break;
case S_IFCHR:
printf("这是一个字符设备文件\n");
break;
case S_IFIFO:
printf("这是一个管道文件\n");
break;
}
printf("文件的权限为:%#o\n",st.st_mode&0777);
printf("inode:%ld\n",st.st_ino);
printf("文件大小为:%ld\n",st.st_size);
printf("用户id号为:%d\n",st.st_uid);
printf("组id号:%d\n",st.st_gid);
printf("最后一次操作的时间:%s",ctime(&st.st_atime));
return 0;
}