我正在使用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退出...”)?
答案 0 :(得分:0)
您可以尝试这样的事情:
#include <stdlib.h>
int main()
{
// Any Key will work actually
system( "read -n 1 -s -p \"Press Enter to exit...\"" );
return 0;
}