Slide 60
Slide 60 text
func runTask(command: String, arguments: [String], standardInput: Pipe? = nil) throws -> Pipe {
let task = Process(), standardOutput = Pipe(), standardError = Pipe()
task.launchPath = "/usr/bin/env"
task.arguments = [command] + arguments
task.currentDirectoryPath = NSTemporaryDirectory()
task.standardInput = standardInput
task.standardOutput = standardOutput
task.standardError = standardError
task.launch()
task.waitUntilExit()
guard task.terminationStatus == 0 else {
// ҟৗऴྃ
let errorOutput = String(data: standardError.fileHandleForReading.readDataToEndOfFile(), encoding: .utf8) ?? ""
throw Error.commandFailed(errorOutput)
}
return standardOutput
}
let tmpFilePath = NSTemporaryDirectory().appending("inputFile")
let catOutput = try runTask(
command: "cat",
arguments: [tmpFilePath]
)
let result = String(data: catOutput.fileHandleForReading.readDataToEndOfFile(), encoding: .utf8) ?? ""
60