通常、print関数は標準出力に、NSLog関数やCFShow関数は標準エラー出力に文字列を出力します。
freopen関数を使って次のようにすると、これらの出力先をファイルに変更することができます。
import Foundation
print(“print function 1”)
NSLog(“NSLog function 1”)
var stdout_file = NSString(string: “~/Desktop/stdout.txt”).stringByExpandingTildeInPath
var stderr_file = NSString(string: “~/Desktop/stderr.txt”).stringByExpandingTildeInPath
_ = freopen(stdout_file, “w”, stdout)
_ = freopen(stderr_file, “w”, stderr)
print(“print function 2”)
NSLog(“NSLog function 2”)
この例では、print関数の出力先を~/Desktop/stdout.txtに、NSLog関数の出力先を~/Desktop/stderr.txtに変更しています。