我正在使用 pthreads 为 Mac OS 编写一个多线程命令行工具。我有四个线程产生大量输出。他们都在做同样的工作。当其中一个找到所需的答案时,它将全局变量 var
设置为 1 并退出。当所有线程都在工作时,main
正在执行 for 循环,而不是join
这些线程。循环看起来像这样:while(!var);
。当 var
设置为 1 时,该循环停止。
循环结束后,所有线程都将被终止。然后我想等待用户的输入并退出(例如“按 Enter 退出...”)。我尝试使用 getchar()
,而许多互联网资源建议使用 getch()
,但 Mac OS 上没有 getch()
,对吧?
问题是,当我运行这个应用程序时,只需双击应用程序的图标来运行它,而无需先启动终端,它可以正常工作,直到找到答案。不幸的是,它不会等待。它只是说类似进程终止
(没关系,程序成功完成并且返回
s 0),仅此而已。如果我从终端运行它,一切都是一样的。完成后就OK了,然后显示命令提示符。
在 Mac OS 中如何等待用户输入(例如“按 Enter 退出...”)?
最佳答案
你可以尝试这样的事情:
#include <stdlib.h>
int main()
{
// Any Key will work actually
system( "read -n 1 -s -p \"Press Enter to exit...\"" );
return 0;
}
关于c - 如何在 Mac 操作系统上等待用户的操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28882546/