【发布时间】:2015-03-05 16:16:39
【问题描述】:
我正在使用 pthreads 为 Mac OS 编写一个多线程命令行工具。我有四个线程产生大量输出。他们都在做同样的工作。当其中一个找到所需的答案时,它将全局变量var 设置为 1 并退出。当所有线程都在工作时,main 正在执行一个 for 循环,而不是 joining 这些线程。循环看起来像这样:while(!var);。当 var 设置为 1 时,此循环停止。
循环结束后,所有线程都被杀死。然后我想等待用户的输入并退出(类似于“按 Enter 退出...”)。我尝试使用getchar(),而许多互联网资源建议使用getch(),但在Mac OS 上没有getch(),对吧?
问题是,当我在没有先启动终端的情况下双击应用程序图标运行它时,它可以正常工作,直到找到答案。不幸的是,它没有等待。它只是说类似process terminated(没关系,程序成功完成并且returns 0),仅此而已。如果我从终端运行它,一切都一样。它完成了,然后显示命令提示符。
如何在 Mac OS 中等待用户输入(例如“按 Enter 退出...”)?
【问题讨论】: