1313import Swift
1414import SwiftShims
1515
16- #if os(Windows)
16+ #if canImport(Darwin)
17+ import Darwin
18+ let ( platform_read, platform_write, platform_close) = ( read, write, close)
19+ #elseif canImport(Glibc)
20+ import Glibc
21+ let ( platform_read, platform_write, platform_close) = ( read, write, close)
22+ #elseif os(Windows)
1723import CRT
1824import WinSDK
1925#endif
@@ -119,11 +125,11 @@ public struct _FDInputStream {
119125 }
120126 }
121127 let fd = self . fd
122- let readResult : __swift_ssize_t = _buffer. withUnsafeMutableBufferPointer {
128+ let readResult : Int = _buffer. withUnsafeMutableBufferPointer {
123129 ( _buffer) in
124130 let addr = _buffer. baseAddress! + self . _bufferUsed
125131 let size = bufferFree
126- return _swift_stdlib_read ( fd, addr, size)
132+ return platform_read ( fd, addr, size)
127133 }
128134 if readResult == 0 {
129135 isEOF = true
@@ -139,7 +145,7 @@ public struct _FDInputStream {
139145 if isClosed {
140146 return
141147 }
142- let result = _swift_stdlib_close ( fd)
148+ let result = platform_close ( fd)
143149 if result < 0 {
144150 fatalError ( " close() returned an error " )
145151 }
@@ -207,7 +213,7 @@ public struct _FDOutputStream : TextOutputStream {
207213 var writtenBytes = 0
208214 let bufferSize = utf8CStr. count - 1
209215 while writtenBytes != bufferSize {
210- let result = _swift_stdlib_write (
216+ let result = platform_write (
211217 self . fd, UnsafeRawPointer ( utf8CStr. baseAddress! + Int( writtenBytes) ) ,
212218 bufferSize - writtenBytes)
213219 if result < 0 {
@@ -222,7 +228,7 @@ public struct _FDOutputStream : TextOutputStream {
222228 if isClosed {
223229 return
224230 }
225- let result = _swift_stdlib_close ( fd)
231+ let result = platform_close ( fd)
226232 if result < 0 {
227233 fatalError ( " close() returned an error " )
228234 }
0 commit comments