Where is the <conio.h> header file on Linux? Why can't I find <conio.h>? [duplicate]
Possible Duplicate:
How to implement getch() function of C in Linux?
What is the equivalent Linux
version of the conio.h
header file from MS-DOS?
Is there a way to replace its functionality? e.g. getch()
I'm using
gcc
and the text editorGeany
to compileC
code.
Solution 1:
conio.h
is a C header file used with old MS-DOS compilers to create text user interfaces. Compilers that target other operating systems, such as Linux-based, 32-bit Windows and OS/2, provide equivalent functionality through other header files and libraries.
The #include <curses.h>
will give you almost all of the functionality provided by conio.h
.
"ncurses" needs to be installed in the first place.
If you use the Apt package manager:
sudo apt-get install libncurses5-dev libncursesw5-dev
If you use rpm
:
sudo yum install ncurses-devel ncurses
For getch
, take a look at the "NCURSES Programming HOWTO" article.
Solution 2:
The original conio.h was implemented by Borland, so its not a part of the C Standard Library nor is defined by POSIX.
But here is an implementation for Linux that uses ncurses to do the job.
Solution 3:
That is because it does not exist, since it is bounded to Windows.
Use the standard functions from <stdio.h>
instead, such as getc
The suggested ncurses library is good if you want to write console-based GUIs, but I don't think it is what you want.