基于POSIX在Linux下C语言实现读取整个目录文件[Get a List of Files in a Directory with C]

引用请注明出处:http://blog.csdn.net/int64ago/article/details/7423714

       由于要批量处理服务器日志,但是对python、perl等脚本不熟悉,就考虑是否可以用c实现,找到了readdir这个库,但是这个不是ANSI C的东西,在windows一般用不起,用linux的可以看看,很简单的代码实现,就没加注释了……

#include  <stdio.h>
#include  <stdlib.h>
#include  <unistd.h>
#include  <sys/types.h>
#include  <fcntl.h>
#include  <dirent.h>

#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;
} 



你可能感兴趣的:(c,linux,python,list,perl,语言)