계속적인 키 입력이 있으면 콘솔이 깨지거든요.

익명 사용자의 이미지

제목 그대로... 엔터를 치면 메뉴화면이 리플레쉬되면서 나타나는데 이게
연속적으로 치고 있으면 나중에는 화면에 틀이 깨지면서 엉망이 되어버럽
니다.
물론 동작에는 아무런 지장이 없습니다.

ssty0에 버퍼링이 제대로 않되는거 같은데 이를 해결 할 만한 방법이 있
는지요....??

콘솔 버퍼링을 지워주고 다시 입력받으면 될거 같은데..어떠한 방식으로
하는지 가르쳐 주시면 감사하겠습니다.

즐거운 하루 되세요..

익명 사용자의 이미지

좀더 상세히 적어주시면 고맙겠습니다.
화면 캡쳐라든지..
아니면, 소스라도 보여주셔야 정확히 답변을 적을 수 있을것 같네요. ^^

익명 사용자의 이미지

1. 환경
임베디드 보드에 linux기반으로 2.4대의 커널을 포팅해서 넣었습니다.
접속은 Serial, Telnet, WEB으로 가능하며, 제가 문제 삼아 질문 드리는것
은 Serial, Telnet(어차피 같은 프로그램 사용하거든요.)으로 접속 시 실
행되는 Text기반의 CLI(Command Line Interface) 프로그램을 제작해서 고
퍼방식으로 해당 메뉴의 번호를 입력하면 입력화면이 뜨고 그곳에 원하는
값(정수, 문자..)을 넣어줍니다.

2. 문제점
--------------------------------------------
[1.파일] [2.편집] [3. 보기] [4. 도구] ..
--------------------------------------------
이와같은 메뉴의 구성이 있는데..(실제적으로 세로 방향으로 구성되어 있
습니다.) 1번부터 4번까지 택할 수 있겠지요.
원하는 번호를 입력하면 해당하는 메뉴화면으로 이동합니다.

그런데 Stress Test와 같은 방식으로 엔터값이나 임의의 값을 지속적으로
쉬지않고 입력하면 얘가 틀이 깨진다는 것이지요. 그러니까...다음과 같
이 콘솔에 출력이 됩니다.
---------------------------------
[1.파일]
[2.편
집]
[3. 보기]
[4. 도
구] ..
---------------------------------

CLI program을 종료하고 나와도 Linux상의 모든 화면이 이 상태를 유지하
는걸 봐서는 콘솔상의 입력 및 출력 처리에 문제가 있지 않을까 하는 생각
이 들더군요.

3. 추가질문사항
그리고 Ctrl+S를 입력하는 경우도 이상한 증상이 발생합니다.
Ctrl+S를 입력하면
printf("String");
위와 같은 하나의 프린트문이 임의의 키 값이 눌려졌을 때 실행됩니다.
이 역시 비정상적인 동작을 보이는데 Signal()함수로
--------------------------------
signal(SIGINT, SIG_IGN);
signal(SIGTSTP, SIG_IGN);
--------------------------------
main()함수의 상단 부분에 설정을 했거든요.

다른 키는 괜찮은데 Ctrl+S는 막질 못하는거 같습니다. 임의의 키를 하나
씩 입력받아 처리하는 루틴을 만들면 가능할 텐데 지금 하는중이라...^^;

이정도의 상태에서 잠시 헤메고 있습니다.

조언 부탁드립니다.
수고하세요.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.