Log In

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

*Tek-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.


using readdir to count files in a directory

using readdir to count files in a directory

    struct S_Dir* dirp;
    struct dirent* direntp;

    dirp = opendir( "C:/WINDOWS/Desktop/OATS_MONITOR/OATS/usr/home/clf" );
    if( dirp != NULL ) {
        for(;;) {
            direntp = readdir( dirp);
            if( direntp == NULL ) break;

            printf( "%s\n", direntp->d_name );

        closedir(dirp );

I get errors saying:
ATS.obj : error LNK2001: unresolved external symbol "void __cdecl closedir(struct S_Dir *)" (?closedir@@YAXPAUS_Dir@@@Z)
OATS.obj : error LNK2001: unresolved external symbol "struct dirent * __cdecl readdir(struct S_Dir *)" (?readdir@@YAPAUdirent@@PAUS_Dir@@@Z)
OATS.obj : error LNK2001: unresolved external symbol "struct S_Dir * __cdecl opendir(char *)" (?opendir@@YAPAUS_Dir@@PAD@Z)
Debug/OATS.exe : fatal error LNK1120: 3 unresolved externals
Error executing link.exe.

OATS.exe - 4 error(s), 0 warning(s)

RE: using readdir to count files in a directory

The Errors coming because of S_Dir. Use Struct DIR.
Try the following program.

#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
int main()
        int count;
        struct DIR *d;
        if( (d = opendir(".")) != NULL)
                for(count = 0;  readdir(d) != NULL; count++);
        printf("\n %d", count);
        return 0;

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Tek-Tips Forums free from inappropriate posts.
The Tek-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Tek-Tips forums is a member-only feature.

Click Here to join Tek-Tips and talk with other members!


Close Box

Join Tek-Tips® Today!

Join your peers on the Internet's largest technical computer professional community.
It's easy to join and it's free.

Here's Why Members Love Tek-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close