【问题标题】:how to capture waxsim stdout&stderr如何捕获waxsim stdout&stderr
【发布时间】:2013-01-12 16:14:11
【问题描述】:

这是 iPhone 在 MacOS 上的开发问题, 我正在使用“waxsim”在模拟器上启动我的 iphone 应用程序。 像这样:

/usr/local/bin/waxsim /Users/me/Desktop/app/build/Release-iphonesimulator/app.app

在我的应用程序中,我使用了 printf(),并且我看到了控制台中打印的 printf 消息。

但我无法将它们放入文件或使用 grep 过滤!我尝试了所有正常工作的方法:

cmd | grep "x"

打印所有消息,但不通过 grep

cmd > myfile

所有消息仍然进入控制台,文件没有任何内容

cmd &> myfile

此命令不会向控制台打印任何内容!但是 myfile 只包含这个:

Launching '/Users/me/Desktop/app/build/Release-iphonesimulator/app.app' on'Simulator - iOS 6.0'

但不是用 printf 打印的实际消息

cmd 2>&1 > myfile

有了这个,一切都进入控制台,没有任何东西进入文件。

我认为waxsim 对管道有一些技巧?

【问题讨论】:

    标签: iphone macos bash ios-simulator pipe


    【解决方案1】:

    cmd &> myfile 应该可以工作(或者等效地,cmd > myfile 2>&1,顺序很重要)。

    不过,问题可能在于您的消息被缓冲了。当 stdout 不是终端时,这是标准行为。如果您在查看文件之前完全关闭模拟器,是否有消息?

    如果是这样,请尝试script -q /dev/null yourcommand(不确定script 的OS X 语法。在Linux 上应该是script -c "your command" /dev/null)。

    【讨论】:

    • 谢谢那个人!杀死模拟器不起作用,但使标准输出无缓冲工作! setvbuf(stdout, NULL, _IONBF, 0);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-29
    • 1970-01-01
    • 2020-06-23
    • 2018-10-31
    • 2020-06-01
    • 2017-08-26
    • 2014-08-05
    相关资源
    最近更新 更多