@@ -82,30 +82,10 @@ func ReadDir(name string) ([]DirEntry, error) {
8282 return dirs , err
8383}
8484
85- //go:linkname c_fdopendir C.fdopendir
86- func c_fdopendir (fd c.Int ) uintptr
87-
88- func fdopendir (fd int ) (dir uintptr , err error ) {
89- return c_fdopendir (c .Int (fd )), nil
90- }
91-
92- //go:linkname c_closedir C.closedir
93- func c_closedir (dir uintptr ) c.Int
94-
95- func closedir (dir uintptr ) error {
96- if c_closedir (dir ) != 0 {
97- return syscall .Errno (os .Errno ())
98- }
99- return nil
100- }
101-
102- //go:linkname c_readdir C.readdir
103- func c_readdir (dir uintptr ) * syscall.Dirent
104-
105- func readdir (dir uintptr ) ([]syscall.Dirent , error ) {
85+ func readdir (dir * os.DIR ) ([]syscall.Dirent , error ) {
10686 var entries []syscall.Dirent
10787 for {
108- dirent := c_readdir (dir )
88+ dirent := os . Readdir (dir )
10989 if dirent == nil {
11090 break
11191 }
@@ -139,11 +119,11 @@ func (f *File) ReadDir(n int) (dirents []DirEntry, err error) {
139119 }
140120
141121 // Open directory using file descriptor
142- dir , err := fdopendir ( int (f .fd ))
143- if err ! = nil {
144- return nil , err
122+ dir := os . Fdopendir ( c . Int (f .fd ))
123+ if dir = = nil {
124+ return nil , syscall . Errno ( os . Errno ())
145125 }
146- defer closedir (dir )
126+ defer os . Closedir (dir )
147127
148128 // Match Readdir and Readdirnames: don't return nil slices.
149129 dirents = []DirEntry {}
0 commit comments