如何在Mac OS上等待用户的操作?

时间:2015-03-05 16:16:40

标签: c pthreads getchar getch

我正在使用pthreads为Mac OS编写多线程命令行工具。我有四个线程产生大量输出。他们都在做同样的工作。当其中一个找到所需答案时,它会将全局变量var设置为1并退出。虽然所有线程都在工作,但main正在执行for循环,而不是join这些线程。循环看起来像这样:while(!var);。当var设置为1时,此循环停止。

循环之后,所有线程都被杀死。然后我想等待用户的输入并退出(例如“按Enter键退出...”)。我尝试使用getchar(),而许多互联网资源建议使用getch(),但Mac OS上没有getch(),对吧?

问题是,当我运行这个应用程序时,只需双击应用程序的图标即可在不启动终端的情况下运行它,它可以正常运行,直到找到答案。不幸的是,它不等待。它只是说process terminated之类的东西(没关系,程序成功完成,return是0),就是这样。如果我从终端运行它,它都是一样的。完成正常,然后显示命令提示符。

如何在Mac OS中等待用户输入(例如“按Enter退出...”)?

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

 #include <stdlib.h>

int main()
{
    // Any Key will work actually
    system( "read -n 1 -s -p \"Press Enter to exit...\"" );
    return 0;
}