Hallo!
Ich hab dir mal schnell ein kleines Beispiel erstellt. (Testsystem: V5R3)
Diverse Aktionen (überprüfen auf *NULL bei Pointern/abfangen von "." und ".." bei OpenDir & ähnliches hab ich absichtlich nicht mit kopiert).
Falls sich ein Fehler eingeschlichen hat, bitte ich um Rückmeldung.Code:************************************************************************** * ReadDir_r - Entry/Result DataStructure * ************************************************************************** D DirEnt DS Based(Ptr_Result) D Res01 16A D FileNoGenId 10U 0 D FileNo 10U 0 D RecLen 10U 0 D Res03 10I 0 D Res04 6A D Res05 2A D NlsInfo 12A D CCSID 10I 0 Overlay(NlsInfo:1) D CtryId 2A Overlay(NlsInfo:5) D LangId 3A Overlay(NlsInfo:7) D Res06 3A Overlay(NlsInfo:10) D FileNameLen 10U 0 D FileName 640A ************************************************************************** * ReadDir_r - Prototyp * ************************************************************************** D ReadDir PR 10I 0 ExtProc('readdir_r') D Directory * Value Options(*String) D Entry * D Result * /Free Ptr_Dir = OpenDir('/home/test'); DoU (Ptr_Result = *NULL); RtnCode = ReadDir(Ptr_Dir:Ptr_Entry:Ptr_Result); EndDo; RtnCode = CloseDir(Ptr_Dir); *InLr = *On; /End-Free
Lg,
Sam
Nachtrag bezüglich Error Code 3408:
EFAULT 3408 The address used for an argument was not correct. In attempting to use an argument in a call, the system detected an address that is not valid.
![[NEWSboard IBMi Forum]](images/duke/nblogo.gif)



Mit Zitat antworten
Bookmarks