List a directory in a C program on Unix machines

Richard Harter rh at smds.UUCP
Sun Aug 12 05:00:48 AEST 1990


In article <1990Aug10.213953.25619 at cubmol.bio.columbia.edu>, ping at cubmol.bio.columbia.edu (Shiping Zhang) writes:
> In article <1990Aug10.154506.846 at caen.engin.umich.edu> cys at caen.engin.umich.edu writes:
> >  I am currently writing a C program on Unix machines. What I want to
> >do is to store the file names in a directory into a character array.
> >So I can do something to those files. I want to use Unix system calls
> >to handle it. Could anyone help me out with that? 

> I think opendir(), readdir() etc. can handle this problems. Check
> your man pages.

But be warned.  There are some portability pitfalls so the routine to
fetch the file names should be encapsulated.  The major variants that
I can think of offhand are:

(a)	BSD	Uses <sys/dir.h> 
(b)	SYS V	Uses <dirent.h>
(c)	SYS V	Older versions of SYS V may not have these routines.
		You can write your own.  THe directory is a file 
		containing an array of structures which can be read.
		The format is in the manual.
(d)	VMS	Write your own.  There are C callable VMS library
		routines for extracting the needed information.
(e)	Primos	Has a routine called lsdir which returns just what
		you want.


-- 
Richard Harter, Software Maintenance and Development Systems, Inc.
Net address: jjmhome!smds!rh Phone: 508-369-7398 
US Mail: SMDS Inc., PO Box 555, Concord MA 01742
This sentence no verb.  This sentence short.  This signature done.



More information about the Comp.lang.c mailing list