【问题标题】:Where is the <conio.h> header file on Linux? Why can't I find <conio.h>? [duplicate]Linux 上的 <conio.h> 头文件在哪里?为什么我找不到 <conio.h>? [复制]
【发布时间】:2012-02-06 05:13:45
【问题描述】:

可能重复:
How to implement getch() function of C in Linux?

MS-DOS 中 conio.h 头文件的等效 Linux 版本是什么?

有没有办法替换它的功能? 例如getch()

我正在使用gcc 和文本编辑器Geany 编译C 代码。

【问题讨论】:

  • 你找不到它,因为它是 DOS 头文件!
  • @DavidHeffernan 那么这是否意味着我们在 linux 中不需要 conio.h?
  • @Vicrobot 它在 Linux 上不存在,所以你不需要它

标签: c linux gcc header-files


【解决方案1】:

具有类似功能的流行 Linux 库是 ncurses

【讨论】:

    【解决方案2】:

    原来的 conio.h 是由 Borland 实现的,因此它不是 C 标准库的一部分,也不是 POSIX 定义的。

    But here is an implementation for Linux 使用 ncurses 来完成这项工作。

    【讨论】:

      【解决方案3】:

      那是因为它不存在,因为它绑定到 Windows。

      改用&lt;stdio.h&gt;中的标准函数,例如getc

      如果您想编写基于控制台的 GUI,建议的 ncurses 库很好,但我认为这不是您想要的。

      【讨论】:

      • 对我不起作用
      【解决方案4】:

      conio.h 是一个 C 头文件,与旧的 MS-DOS 编译器一起用于创建文本用户界面。针对其他操作系统(例如基于 Linux、32 位 Windows 和 OS/2)的编译器通过其他头文件和库提供等效功能。

      #include &lt;curses.h&gt; 将为您提供conio.h 提供的几乎所有功能。

      首先需要安装“ncurses”。

      如果您使用 Apt 包管理器:

      sudo apt-get install libncurses5-dev libncursesw5-dev
      

      如果你使用rpm

      sudo yum install ncurses-devel ncurses
      

      对于getch,请查看"NCURSES Programming HOWTO" 文章。

      【讨论】:

      • 我收到错误'致命错误:curses.h:没有这样的文件或目录'我该怎么办?
      • @kanojesumit 这意味着没有安装curses库。它不是标准库。你需要在网上找到它(例如 Ncurses 是一个免费的 GPL 实现)。
      • 使用cursesncurses 的程序通常会占据整个(文本)屏幕,这可能是也可能不是您想要的。
      • 即使我得到错误 permutation.c:2:19: fatal error: curses.h: No such file or directory #include ^ 编译终止。
      • 每个人都说curses,但curses的问题是它必须接管你的控制台环境。如果你已经有一个控制台程序,你需要在 curses 中重写整个东西以保持一致,因为 curses 管理它自己的屏幕。为什么我们不能只移植 conio?
      猜你喜欢
      • 2020-05-05
      • 2011-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-23
      相关资源
      最近更新 更多