下面代码是从man 2 scandir 中的example 复制下来的,比起代码本身,要会利用官方demo,这一学习方法是更重要的的
#define _SVID_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dirent.h>
/* print files in current directory in reverse order */
#include <dirent.h>
int main(int argc , char * argv[])
{
struct dirent **namelist;
int n;
n = scandir(argv[1], &namelist, NULL, alphasort); //三级指针只能输出
if (n < 0)
{
perror("scandir");
}
else {
while (n--)
{
printf("%s\n", namelist[n]->d_name);
free(namelist[n]);
}
free(namelist);
}
}
[19:06:42 holo@holocom ~/net/day6]$ make scandir
cc scandir.c -o scandir
[19:06:46 holo@holocom ~/net/day6]$ ./scandir .
wrap.h
wrap.c
webserver.c
webserver
web_epoll.c
web_epoll
test
tcp_event.c
tcp_event
scandir.c
scandir
pub.h
pub.c
music
libevent.c
libevent-2.0.22-stable.tar.gz
libevent-2.0.22-stable
libevent
js
index.html
img
html
hello-world.c
hello-world
ex_web_epoll.c
css
aa.html
.web_epoll.c.swp
.tcp_event.c.swp
.index.html.swp
..
.
[19:06:54 holo@holocom ~/net/day6]$ ./scandir ../
test
practice2
practice
day6
day5
day4
day3
day2
day1
..
.