KenjiOne
KenjiOne

Reputation: 149

Is it possible to use opendir repeatedly in C?

I am trying to debug right now in C and am curious if it is alright to call opendir() repeatedly without having to first call closedir() because I am trying to run a loop to open sub-directories when the while-loop that calls readdir() encounters them. And I assume that closing the current directory would cause me to lose the ability to read it.

Upvotes: 2

Views: 2245

Answers (3)

Douglas Leeder
Douglas Leeder

Reputation: 53310

You'll have to be careful not to leak the DIR* that you are collecting, but as long as you don't hit the file-descriptor limit you shouldn't have any problem with having multiple opendir() open at the same time.

Upvotes: 1

Jim Garrison
Jim Garrison

Reputation: 86744

Yes, you can do multiple opendir() calls. Be wary of symbolic link loops which could cause you to get into an infinite loop and consume all available memory.

Upvotes: 2

Wernsey
Wernsey

Reputation: 5491

You can use opendir() repeatedly. Just keep your DIR *s and call closedir() when you're done with each.

Upvotes: 5

Related Questions