#define _XOPEN_SOURCE 500
#include <ftw.h>
#include <stdio.h>
static int display_info(const char *fpath, const struct stat *sb, int tflag, struct FTW *ftwbuf)
{
switch(tflag)
{
case FTW_D: case FTW_DP: puts(fpath); break;
}
return 0; /* To tell nftw() to continue */
}
int main(int argc, char *argv[])
{
int flags = FTW_DEPTH | FTW_MOUNT | FTW_PHYS;
if (argc>1 && nftw(argv[1], display_info, 20, flags) == -1)
perror("nftw");
}
ICAgICNkZWZpbmUgX1hPUEVOX1NPVVJDRSA1MDAKICAgICNpbmNsdWRlIDxmdHcuaD4KICAgICNpbmNsdWRlIDxzdGRpby5oPgogICAgCiAgICBzdGF0aWMgaW50IGRpc3BsYXlfaW5mbyhjb25zdCBjaGFyICpmcGF0aCwgY29uc3Qgc3RydWN0IHN0YXQgKnNiLCBpbnQgdGZsYWcsIHN0cnVjdCBGVFcgKmZ0d2J1ZikKICAgIHsKICAgICAgICBzd2l0Y2godGZsYWcpCiAgICAgICAgewogICAgICAgICAgICBjYXNlIEZUV19EOiBjYXNlIEZUV19EUDogcHV0cyhmcGF0aCk7IGJyZWFrOwogICAgICAgIH0KICAgICAgICByZXR1cm4gMDsgLyogVG8gdGVsbCBuZnR3KCkgdG8gY29udGludWUgKi8KICAgIH0KICAgIAogICAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgIHsKICAgICAgICBpbnQgZmxhZ3MgPSBGVFdfREVQVEggfCBGVFdfTU9VTlQgfCBGVFdfUEhZUzsKICAgIAogICAgICAgIGlmIChhcmdjPjEgJiYgbmZ0dyhhcmd2WzFdLCBkaXNwbGF5X2luZm8sIDIwLCBmbGFncykgPT0gLTEpCiAgICAgICAgICAgIHBlcnJvcigibmZ0dyIpOwogICAgfQogICAg