Zdravim, vyzkošel jsem jeden fígl, který jsem viděl na http://ou800doc.caldera.com/en/SDK_sysprog/_TTY_in_Raw_Mode.html .
1 #include <termio.h>
2
3 extern struct termio old_term;
4
5 setup2(fid)
6 int fid;
7 {
8 struct termio new_term;
9
10 if (ioctl(fid, TCGETA, &old_term) == -1)
11 {
12 printf("ioctl get failed.\n");
13 exit(1);
14 }
15
16 new_term = old_term;
17 new_term.c_lflag &= ~ICANON;
18 new_term.c_cc[VMIN] = 0;
19 new_term.c_cc[VTIME] = 0;
20
21 if (ioctl(fid, TCSETA, &new_term) == -1)
22 {
23 printf("ioctl set failed.\n");
24 exit(1);
25 }
26 }
Konkrétně by měl tento kód změnit chování konzole, jenže se to ani nezkompiluje.
gcc -o Milionar milionar.c
milionar.c: In function ‘setup2’:
milionar.c:13: warning: incompatible implicit declaration of built-in function ‘exit’
milionar.c:24: warning: incompatible implicit declaration of built-in function ‘exit’
/tmp/cccFMVYM.o: In function `setup2':
milionar.c:(.text+0xa): undefined reference to `old_term'
milionar.c:(.text+0x3f): undefined reference to `old_term'
milionar.c:(.text+0x47): undefined reference to `old_term'
milionar.c:(.text+0x4f): undefined reference to `old_term'
milionar.c:(.text+0x57): undefined reference to `old_term'
/tmp/cccFMVYM.o:milionar.c:(.text+0x61): more undefined references to `old_term' follow
collect2: ld returned 1 exit status
make: *** [Milionar] Error 1
Potřeboval bych poradit, v čem je problém. Tážu se zde, protože mi to přijde jako systémová záležitost.