초짜질문입니다....;

kykisk의 이미지

아직 유닉스나 리눅스 초짜라 vi나 gcc 등밖에 사용할줄몰라서
질문도 좀 이상할지도....죄송.....;;

zterm사용하는데요....
어떤 키를 눌렀을때 그 키를 어떤값으로 입력받는지를 알고싶어서

#include<stdio.h>

int main(void)
{
int k;

k = getchar();

printf("%d\n",k);
}

이렇게한뒤
curses 를 포함시켜 컴파일을 했는데요...

1이나 2등 다른값은 되는데

ESC, F1, F2.....등등은 동일한값만나오네요....27이라고...;;

보통 ESC등을 눌렀을때 ^[[ 식으로 모니터에 찍혀서 ^ 나 [ 를 입력시켜봤는데

이건또 91등이 나오네요....

아무래도 ESC키등을 인식못하는듯하기도하고..........

죄송하지만 조언좀....;;

cinsk의 이미지

man ncurses
man curs_initscr

initscr(), endwin() 참고.

맹고이의 이미지

curses를 사용했다고 하셨는데
어디에 쓰신건지, 전혀 안보이네요... ;
이렇게 해보세요.

#include <ncurses.h>

int main() {
        int ch;

        initscr();
        keypad(stdscr, TRUE);   /* We get F1, F2 etc... */
        noecho();

        printw("Press any key...\n");

        ch = getch();

        printw("The pressed key is ");
        printw("%d\n", ch);

        refresh();
        endwin();

        return 0;
}
kykisk의 이미지

답변감사합니다....

그런데 이것도 ESC부터 F1 F2 F3등은 똑같이 27 만나오네요...

F1 F2 ESC 등을 입력하면 서로 다른 함수를 호출하려고 하는데

F1 키등은 안먹나요?

한번더 답변주시면 감사하겠습니다..

맹고이의 이미지

테스트하고 올린 소스인데... -_-;

<Esc>는 27이 나오고

<F1>는 259가 나오더군요.

어떻게 컴파일을 했는지 보여주세요.

kykisk의 이미지

위에 보여주신거 그대로 썼거든요?

컴파일은 gcc -o bios bios.c -lcurses 라고했는데.....

근데 값이 전 똑같이 27만....;;;

아 근데 F1~ F4까지만 그렇네요...나머진 제대로나오는데...;;

zterm에 문제가??-_-a;;

fliers의 이미지

도스랑 같은거면...
오래전이라 기억이 가물가물한데,

F1이나 방향키 등은 키값이 연속으로 2개가
발생했던 것 같은데요.

첫번째 esc+키캆 이거든요..

getch를 한번 더 해야할 것 같은데요.

fliers의 이미지

테스트를 해 봤는데, 터미널마다 문제가 있군요.

로컬에서 했으면 괜찮은진 모르겠는데
원격에서는 문제가 됩니다.

zterm 으로 했을 시에는 (TERM=xterm)

F1 : 1b 5b 31 31 7e 즉, esc[11~
F2 : esc[12~

윈도xp telnet 으로 했을때는 ansi 모드인데

F1 : 1b 4f 50 -> esc O P
F2 : 1b 4f 51 -> esc O Q

이 들어오는군요..

다른 방법을 써여 할 것 같은걸요....
더이상은 잘 모르겠네요...

ps.
그리고 위에 esc + 키값 이 아니고 0 + 키값 인것 같네요..

kykisk의 이미지

답변감사합니다
아무래도 그런듯하네요....

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.