由于要批量处理服务器日志,但是对python、perl等脚本不熟悉,就考虑是否可以用c实现,找到了readdir这个库,但是这个不是ANSI C的东西,在windows一般用不起,用linux的可以看看,很简单的代码实现,就没加注释了……
#include
#include
#include
#include
#include
#include
#define ERROR 0
#define OK 1
#define GET_FILE do{ if(argc == 1) ls(".");\
else while(--argc){\
printf("%s\n",*++argv);\
ls(*argv);}}while(0)
typedef int Status;
Status ls(char *dirname)
{
DIR *p_dir;
struct dirent *p_dirent;
if((p_dir = opendir(dirname)) == NULL){
fprintf(stderr,"---->can\'t open %s\n",dirname);
return ERROR;
}
while((p_dirent = readdir(p_dir))){
printf("%s\n",p_dirent->d_name);
}
return OK;
}
int main(int argc,char **argv)
{
GET_FILE;
return 0;
}