Linux项目一
引言:
这是我去年做的东西,一直没有时间整理,今天又要做一个基于这个项目的客户端与服务器版本。
以前我写的库文件中的函数耦合度很大,在一个函数中调用另一个函数,导致一无法拆开使用!
因此,我对以前写的库进行接口的更改,以更好的适应更多的项目。
当然我也把以前写的小程序贴出来,以供大家参考!
需求:
1.搜索bmp图片转换成黑白图片复制到另一个文件中
2.系统为Linux
自定义功能函数:
1.打印目录:
1 #include<unistd.h> 2 #include<stdio.h> 3 #include<dirent.h> 4 #include<string.h> 5 #include<sys/stat.h> 6 #include<stdlib.h> 7 void printdir(char *dir,int depth)/*打印目录*/ 8 { 9 DIR *dp; 10 struct dirent *entry; 11 struct stat statbuf; 12 13 if((dp=opendir(dir))==NULL) 14 { 15 fprintf(stderr,"cannot open directory:%s ",dir); 16 return; 17 } 18 chdir(dir); 19 while((entry=readdir(dp))!=NULL) 20 { 21 lstat(entry->d_name,&statbuf);/**获取文件信息,保存在statbuf**/ 22 if(S_ISDIR(statbuf.st_mode))/***判断是否为目录***/ 23 { 24 if(strcmp(".",entry->d_name)==0||strcmp("..",entry->d_name)==0) 25 continue; 26 printf("%*s%s/ ",depth," ",entry->d_name); 27 printdir(entry->d_name,depth+4); 28 } 29 else 30 printf("%*s%s/ ",depth," ",entry->d_name);/***为文件***/ 31 } 32 chdir(".."); 33 closedir(dp); 34 }
2.删除文件:
1 #include<unistd.h> 2 void del_file(const char *filename) 3 { 4 unlink(filename); 5 return 1; 6 }
3.复制文件:
#include<unistd.h> void lkbmp(const char *source,const char *target) { if(link(source,target)==0) printf(" link is successful "); else printf(" link is error "); }
4.对彩色图片转换成黑白图片
#include<stdio.h> #include<string.h> int bmp(char filename[]) { FILE *fo,*fin; RGN rgb,black={0,0,0,0},white={255,255,255,0}; char name[256]="