Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 18 Aug 1996 21:10:47 -0400
From:      Gary Chrysler <tcg@ime.net>
To:        FreeBSD-Questions <questions@freebsd.org>
Subject:   Reading directory entrys.
Message-ID:  <3217BF17.3F0C@ime.net>

Next in thread | Raw E-Mail | Index | Archive | Help
Hiya all.

Playing around a bit and have the need for a rutine simular
to the below.
Couldn't get it to work so I whipped up this test prg.
>From what I understand of the *dir(3) rutines the below should
work. ?????
It dosn't.

Any kind soles out there willing to point out my problem.
(No I'm not an expert programer, Just dabble a bit)

#include <stdio.h>
#include <dirent.h>

int get_dirent(const unsigned char* path,
               unsigned char* name,
               long entry,
               long next_entry)
{
  DIR* dir;
  struct dirent* dent;

  if ((dir = opendir(path)) == NULL)
    return 1;
  if (entry != 0xffff)
    seekdir(dir, entry);
  if ((dent = readdir(dir)) == NULL) {
    closedir(dir);
    return 1;
  }
  strcpy(name,dent->d_name);
  next_entry = telldir(dir);
  closedir(dir);
  return 0;
}

void main(void)
{
  long entry = 0xffff;
  long next_entry;
  unsigned char filename[100];
  
  while (get_dirent(".", filename, entry, next_entry) == 0) {
    printf("%s\n", filename);
    entry = next_entry;
  }
}


Thanks all.

-Enjoy
Gary
~~~~~~~~~~~~~~~~
Improve America's Knowledge... Share yours
The Borg... Where minds meet
(207) 929-3848



Want to link to this message? Use this URL: <http://docs.FreeBSD.org/cgi/mid.cgi?3217BF17.3F0C>