【问题标题】:How to wait for user's action on Mac OS?如何在 Mac OS 上等待用户的操作?
【发布时间】: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 退出...”)?

【问题讨论】:

    标签: c pthreads getchar getch


    【解决方案1】:

    你可以试试这样的:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-03
      • 2019-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多