리눅스 read함수를 사용한 입력 받기 오류 질문

익명 사용자의 이미지

안녕하세요
리눅스를 이용해서 app을 작동시키는데 그app에서 콘솔을 이용해 입력을 받을려고 read함수를 사용하였습니다.
그런데 read함수를 사용하면 입력값을 집어넣을때 'GH' 후에 키보드 입력을 받게하였는데
이상하게 절반은 GH가 나오는데 절반은 / # 이나옵니다
Printf 찍어서 값을 보니 제가원하는 변수에 순서대로 13579 번째 값은 저장되는데
2468은 / # 에 찍히는데 혹시 이러한 오류가나오는 이유를 알수있을까요 ?

익명 사용자의 이미지

글 올리신 걸로 봐선 무슨 말씀 하는지 모르겠습니다.
GH후에 키보드 입력 받게 했다는 말이 무슨말인지요..
GH123abcd 를 입력시 GH빼고 123abcd를 읽는다는 말씀인가요?

질문자의 이미지

gh는 무시하셔도되요

콘솔 처음 시작할때 GH 뒤에 글자를쓰게 만들었는데
이상하게 # / 가 나오고 GH도 섞어서 나오네요

익명 사용자의 이미지

소스를 볼수 없으니 알 수는 없으나... 추축컨데
read()사용시 버퍼에 잘못 넣으신거 같아 보입니다.

질문자의 이미지

그리고 결정적으로 콘솔창에서 문자 입력서 렉걸리는것처럼 느려집니다.

질문자의 이미지

이해가안될것같아서 캡처했습니다.

댓글 첨부 파일: 
첨부파일 크기
Image icon 1.PNG3.78 KB
질문자 의 이미지

gconsole.wTempReadSize = read(0, &gconsole.bTempReadBuff[0], 1);

if( gconsole.wTempReadSize > 0 ) { c = (char) gconsole.bTempReadBuff[0]; }
else { return; }
if(c == KEYDEFS_CR)

원하는거 실행 인데
이상하게 캡처된것처럼 # / 나오네요 .

익명 사용자의 이미지

#include<stdio.h>
#include<unistd.h>
 
int main()
{
        int buff[100];
        int re;
 
        re=read(0,&buff[0],1);
 
        if(re>0)
        {
                printf("%c\n",(char)buff[0]);
 
        }
        return 0;
}

동일하게 해봤는데 이상 없습니다.

익명 사용자의 이미지

전체 코드를 올려주시는게 질문에 도움이 됩니다
당장 간단한 코드가 안된다는데, 다른분들은 이해하기 힘들죠

댓글 달기

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