🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: be.comp.programming
5 messages
5 total messages Started by David Fri, 21 May 2004 23:51
C++ : readdir geeft gevonden entries in omgekeerde volgorde ?
#2436
Author: David
Date: Fri, 21 May 2004 23:51
30 lines
1703 bytes
Bij het gebruik van de functie readdir (C++, Linux) viel het me op dat
entries in omgekeerde volgorde gegeven worden. vb:

  . . .
  dirname = "/proc/acpi/battery/";    
  battery_dir = opendir(dirname);
  if(battery_dir)                     
  {
	while((bat_entry = readdir(battery_dir)))
	{
	    name = bat_entry->d_name;
    	    cout<<" dir entry found : "<<name<<endl;
	}
  }    		   		    		

geeft volgende output :
 dir entry found : .
 dir entry found : ..
 dir entry found : BAT2
 dir entry found : BAT1

Is dit normaal ? Ik verwachtte dat BAT1 voor BAT2 zou komen. 
De unix man page van readdir helpt me niet verder. 


-- 

 David Leemans 
 
 -----::[ http://freeunix.dyndns.org:8088/ ]::-----
Re: C++ : readdir geeft gevonden entries in omgekeerde volgorde ?
#2437
Author: Kristoffel
Date: Sat, 22 May 2004 09:17
39 lines
2202 bytes
David wrote:
> Bij het gebruik van de functie readdir (C++, Linux) viel het me op dat
> entries in omgekeerde volgorde gegeven worden. vb:
> 
>   . . .
>   dirname = "/proc/acpi/battery/";    
>   battery_dir = opendir(dirname);
>   if(battery_dir)                     
>   {
> 	while((bat_entry = readdir(battery_dir)))
> 	{
> 	    name = bat_entry->d_name;
>     	    cout<<" dir entry found : "<<name<<endl;
> 	}
>   }    		   		    		
> 
> geeft volgende output :
>  dir entry found : .
>  dir entry found : ..
>  dir entry found : BAT2
>  dir entry found : BAT1
> 
> Is dit normaal ? Ik verwachtte dat BAT1 voor BAT2 zou komen. 
> De unix man page van readdir helpt me niet verder. 
> 

Je krijgt dezelfde output als met 'ls -f'.

Via google kwam ik op deze site terecht: 
<http://tools.devchannel.org/devtoolschannel/04/04/30/1810228.shtml?tid=24&tid=46>

daar staat:
...
The output is not sorted in any way; it represents the linear contents 
of the directory.
...

--
  Kristoffel
Re: C++ : readdir geeft gevonden entries in omgekeerde volgorde ?
#2438
Author: Philip Paeps
Date: Sat, 22 May 2004 10:55
25 lines
1733 bytes
David <david@somebox.somewhere> wrote:
> Bij het gebruik van de functie readdir (C++, Linux) viel het me op dat
> entries in omgekeerde volgorde gegeven worden. vb:

Ze worden gegeven in de volgorde dat ze in de directory staan (toch in
mijn implementatie).  Een directory is gewoon een 'file' die dirent(5)
volgt.  Met readdir() haal je gewoon een pointer op naar het 'volgende'
entry in de directory.

> Is dit normaal?  Ik verwachtte dat BAT1 voor BAT2 zou komen.

Waarschijnlijk maakt de driver de proc nodes in die volgorde aan.

> De unix man page van readdir helpt me niet verder. 

En de implementatie zelf? ;-)

 - Philip

-- 
Philip Paeps                              Please don't email any replies
                                              I follow the newsgroup.

   BOFH Excuse #1:
     clock speed
Re: C++ : readdir geeft gevonden entries in omgekeerde volgorde ?
#2439
Author: David
Date: Sat, 22 May 2004 12:38
20 lines
1779 bytes
On Sat, 22 May 2004 10:55:10 +0000, Philip Paeps wrote:

> David <david@somebox.somewhere> wrote:
>> Bij het gebruik van de functie readdir (C++, Linux) viel het me op dat
>> entries in omgekeerde volgorde gegeven worden. vb:
> 
> Ze worden gegeven in de volgorde dat ze in de directory staan (toch in
> mijn implementatie).  Een directory is gewoon een 'file' die dirent(5)
> volgt.  Met readdir() haal je gewoon een pointer op naar het 'volgende'
> entry in de directory.

maw, als ik belang wil hechten aan de volgorde vd gevonden entries,
zal ik dat zelf moeten opvangen.
Thx voor de info, ook aan Kristoffel.

-- 

 David Leemans 
 
 -----::[ http://freeunix.dyndns.org:8088/ ]::-----
Re: C++ : readdir geeft gevonden entries in omgekeerde volgorde ?
#2441
Author: Kristoffel
Date: Sat, 22 May 2004 14:51
34 lines
2253 bytes
David wrote:
> On Sat, 22 May 2004 10:55:10 +0000, Philip Paeps wrote:
> 
> 
>>David <david@somebox.somewhere> wrote:
>>
>>>Bij het gebruik van de functie readdir (C++, Linux) viel het me op dat
>>>entries in omgekeerde volgorde gegeven worden. vb:
>>
>>Ze worden gegeven in de volgorde dat ze in de directory staan (toch in
>>mijn implementatie).  Een directory is gewoon een 'file' die dirent(5)
>>volgt.  Met readdir() haal je gewoon een pointer op naar het 'volgende'
>>entry in de directory.
> 
> 
> maw, als ik belang wil hechten aan de volgorde vd gevonden entries,
> zal ik dat zelf moeten opvangen.
> Thx voor de info, ook aan Kristoffel.
> 


alternatief ?

*scandir* (zie "man scandir")
alphasort sorteert wel in descending order (eerst van z naar a, en van Z 
naar A)

*system ("ls -1 -a /proc/acpi/battery/ > /tmp/filelist.tmp")*
en dan kun je de file gaan lezen.

Geen Thx,

--
  Kristoffel
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads