DIR *opendir(const char *name); 打开一个目录文件,返回值是目录文件指针
struct dirent *readdir(DIR *dirp); 从目录文件中读取文件信息,返回值是struct dirent
int stat(const char *pathname, struct stat *statbuf); 查看文件详细信息, 第一个参数为文件名称,第二个参数为struct stat结构体指针,结构体里的参数代表文件信息,返回值-1代表异常,其他值代表正常
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
void do_ls(char []);
int main(int argc, char *argv[])
{
if(argc == 1)
do_ls("."); // 没有参数默认当前路径
else
{
while(--argc)
{
printf("%s:\n",*++argv);
do_ls(*argv);
}
}
return 0;
}
void do_ls(char dirname[])
{
DIR *dir_ptr; // 目录文件指针
struct dirent * direntp; // 目录文件结构体
if ((dir_ptr = opendir(dirname)) == NULL )
fprintf(stderr,"ls1:cannot open %s\n", dirname);
else
{
while((direntp = readdir(dir_ptr))!=NULL)
{
printf(" %s\n", dir