代码
#include <unistd.h>
#include <fcntl.h>
#include <dirent.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
#include <string.h>
extern int errno;
#define ERR_EXIT(msg) \
do { \
fprintf(stderr, "[%s][%d] %s : %s\n",__FILE__,__LINE__,\
msg,strerror(errno)); \
exit(EXIT_FAILURE); \
}while ( 0 )
int main( void )
{
struct stat buf;
struct dirent *p = NULL;
DIR *dir = opendir(".");
if ( dir == NULL )
ERR_EXIT("opendir");
while ( (p=readdir(dir)) != NULL ) {
if ((p->d_name[0] == '.')
|| !strcmp(p->d_name, "..") )
continue;
/*获取当前文件属型*/
if ( stat(p->d_name, &buf) == -1 )
ERR_EXIT("stat");
if ( S_ISREG