Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
opendir syscall nummer

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - Allgemein
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
snake
Gast





BeitragVerfasst am: 15. Jan 2002 19:44   Titel: opendir syscall nummer

hallo

Bin mich gerade in asm einarbeiten(gas-syntax). Hatte vor ein programm zu schreiben, das den verzeichnissinhalt auflistet. Doch unter asm/unistd.h konnte ich kein syscall eintrag für opendir finden.
Was muss ich da nutzen ?

danke

bye
 

Sascha
Gast





BeitragVerfasst am: 15. Jan 2002 20:26   Titel: Re: opendir syscall nummer

Die ls - Implementierung der asmutils benutzt folgenden Syscall:
 
getdents (141) 
get directory entries
 
arg:
eax - 141,
ebx - uint fd
ecx - struct dirent *dirp
edx - uint count
 
return:
eax - no. of bytes read
 
errors: 
badf, fault, inval, noent, notdir

ref unistd.h, linux/dirent.h, linux/unistd.h

NOTE: False description of structure <dirent> in man 2 de getdents:
2nd item, "d_off", is offset from beginning of directory file to concerning entry.
 

bakunin



Anmeldungsdatum: 16.08.1999
Beiträge: 597
Wohnort: Lorsch (Südhessen)

BeitragVerfasst am: 17. Jan 2002 6:00   Titel: Re: opendir syscall nummer

Hallo snake!

Nur zur Information: Dass du keinen Syscall-Eintrag dafür gefunden hast, liegt daran, dass es sich nicht um einen Systemruf handelt, sondern um eine Funktion der C-Bibliothek. Das sieht man aber auch, wenn man die Manpage davon aufruft.

Cheers,
GNU/Wolfgang
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen

snake
Gast





BeitragVerfasst am: 19. Jan 2002 12:57   Titel: Re: opendir syscall nummer

danke für die antworten

Doch weiss jemand wie das in der c-bibliothek realisiert worden ist ?
Wie kann ich ein Verzeichniss auslesen mit syscalls ?
(ein verzeichniss ist ja auch nur eine datei, mit den dateinamen und inode-nummern der dateien im verzeichniss, kann es sein das ich mit open öffnen muss und dann mit readdir(ist glaube ich ein syscall) lesen kann ???)

danke

bye

ps:
@sascha: hättest du mir da den link zu den asmutils, hört sich interessant an Wink
 

bakunin



Anmeldungsdatum: 16.08.1999
Beiträge: 597
Wohnort: Lorsch (Südhessen)

BeitragVerfasst am: 19. Jan 2002 14:37   Titel: Re: opendir syscall nummer

Hi snake!

> Doch weiss jemand wie das in der c-bibliothek realisiert worden ist ?

Schau doch einfach nach.

> Wie kann ich ein Verzeichniss auslesen mit syscalls ?

Mit getdents(), das hat Sascha bereits gesagt.

> (ein verzeichniss ist ja auch nur eine datei, mit den dateinamen und inode-nummern der dateien im verzeichniss, kann es sein das ich mit open öffnen muss

Nein, in Unix-Systemen (und Unix-Klonen) kannst du ein Verzeichnis nicht mit open() öffnen, denn Unix unterscheidet im Gegensatz zu GNU/Hurd sehr wohl zwischen Verzeichnissen und Dateien.

> und dann mit readdir(ist glaube ich ein syscall) lesen kann ???)

Seufz. Nein, auch das ist _kein_ Systemruf und auch in diesem Fall kann man das an der Manpage sehen.

Cheers,
GNU/Wolfgang
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen

snake
Gast





BeitragVerfasst am: 19. Jan 2002 17:20   Titel: Re: opendir syscall nummer

hallo gnu/wolfgang
(kann ich eine kopie von dir haben ;)

>Schau doch einfach nach.

Stimmt ! Bin in solchen sachen halt eher ein newbie und in den code von grossen projekten zu schauen ist für mich halt neu. (ich weiss, so lernt man am besten, muss halt das risiko mich im code-dschungel zu verlieren eingehen ;)

>Mit getdents(), das hat Sascha bereits gesagt.

Ich dachte da bräuchte es etwas mehr, erst halt öffnen und dann auslesen.

>Seufz. Nein, auch das ist _kein_ Systemruf und auch in diesem Fall kann man das an der Manpage sehen.

Ok die manpage sagt es sei kein syscall, doch trotzdem existiert ein eintrag in der asm/unistd.h (89) !?!

danke

bye

ps: ich muss mir wircklich angewöhnen, die manpages öfter zu konsultieren, danke Wink
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - Allgemein Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy