为什么我在Linux上找不到<conio.h>?</conio.h>

时间:2012-01-09 17:11:40

标签: c linux gcc

  

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

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

有没有办法取代它的功能? e.g。 getch()

  

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

4 个答案:

答案 0 :(得分:86)

conio.h是旧的MS-DOS编译器中用于创建文本用户界面的C头文件。针对非DOS操作系统的编译器,如Linux,Win32和OS / 2,提供了这些功能的不同实现。

#include <curses.h>将为您提供conio.h

中提供的几乎所有功能

nucurses需要首先安装

在基于deb的Distros中使用

sudo apt-get install libncurses5-dev libncursesw5-dev

在基于rpm的发行版中使用

sudo yum install ncurses-devel ncurses

对于getch()类函数,您可以尝试this

答案 1 :(得分:22)

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

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

答案 2 :(得分:4)

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

答案 3 :(得分:3)

那是因为它不存在,因为它与Windows有关。

使用<stdio.h>中的标准函数,例如getc

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