conio.h 우분투에서 실행이 불가능하다?

익명 사용자의 이미지

제가 우분투를 사용하고 있습니다.
찾아보니 세벌님이 conio.h 를 curses.h로 사용하라더군요... 그래서 사용해봤는데 않되네요...
세벌님께 가장먼저 물어보고 싶었습니다. 왜냐하면 모든 글에 세벌님이 꼬박꼬박 댓글다시더군요...
저도 그렇게하기 힘든데... 세벌님이 고맙기도하고 전문가 같기도 했습니다.
자, 이제 conio.h를 대체할수있는것은 없을까요?

네벌의 이미지

https://kldp.org/node/158190 이 글 쓰신 분 맞나요? 우선 특정인을 콕 찍어서 답을 달아 달라는 것은 게시판을 사용하는 다른 사용자들을 무시하는 행위로 비칠 수 있다는 생각을 밝히고 시작합니다.

링크가 걸린 글 그 어디에도 conio.h를 curses로 "대체"할 수 있다고는 안 쓰여 있지, "비슷한 것"이라고만 쓰여 있습니다. 단순히 getch() 함수가 필요하신 거라면 이걸 참조하세요. https://stackoverflow.com/questions/7469139/what-is-equivalent-to-getch-getche-in-linux

익명 사용자의 이미지

저아님니다

익명 사용자의 이미지

제가 착각했습니다. 비슷했다고 한것을 대체라고 써버렸네요...
그리고 제가 세벌님을 콕집은것은 위에서 보신것과같이 대단하신분같아서 이야기한것입니다.
세벌님께서 많은 이들에세 도움도주고 매일매일 답글써주신점을 닮고 싶어서 쓴것입니다. 오해말아주세요~~~~

익명 사용자의 이미지

termiso.h로해도 이렇게 되네요.....

익명 사용자의 이미지

여기 사진입니다.

댓글 첨부 파일: 
첨부파일 크기
Image icon 스크린샷, 2017-09-16 18-13-18.png113.59 KB
익명 사용자의 이미지

저기 저 링크에 달린 글을 제대로 이해하지 않으셨네요. getch() 함수는 C 표준 라이브러리에 없는 함수이기 때문에 리눅스 환경이라면 제아무리 include 바꿔 봤자 해결이 안 될 겁니다. 글을 제발 제대로 끝까지 읽어 보세요.

익명 사용자의 이미지

네? 리눅스에서 않되는걸 알기에 이글을올렸고 도움을 받아서 하면 더 좋겠다고 판단해서 글을 올렸습니다만. . .

세벌의 이미지

char.c 소스 코드 보여 주셔요.

gcc char.c
했는데
ls -l a.out

에 그런 파일 없다고 나오면 실행파일이 안 만들어진 거 같네요.
익명 사용자의 이미지

#include
#include

void main()
{
char ch = 0;
ch = getch();
printf("%d\n", ch);
}

익명 사용자의 이미지

와 가 또짤렸네요

익명 사용자의 이미지

??? 왜 다시올렸는데 또짤리네요?
conio.h. stdio.h. h뒤에 점은생략

익명 사용자의 이미지

conio.h. 를 termiso.h.로 바꾼상태입니다

익명 사용자의 이미지

그러니까 맨 처음 댓글에 달린 링크에서, 그 어디에도 termi"os".h (강조는 본인 추가)만 include 한다고 해서 getch() 함수를 쓸 수 있다고 쓰여 있지 않습니다. getch()를 구현하기 위해서 필요한 함수 때문에 termios.h가 필요한 것이고, 쭉 읽어 보면 어떻게 대체품을 구현했는지까지 나와 있습니다. 그 의미에서 글을 끝까지 읽어 보라고 한 것입니다.

아마 termiso.h를 진짜로 소스 코드에 썼다면 컴파일부터 안 되어야 정상입니다.

익명 사용자의 이미지

아 알겠습니다 제가 그점에 대해서는 생각을못했네요‥‥

지나가는 나그네의 이미지

무슨말인지?
저링크에는 그런말이 쓰여있지않습니다.
일단 님께서 작성자에게 자세히 설명해야할것같네요?
그리고 이런말대신에 정확이 어떤것을 쓰는것이 알맞은지
알려주는게 더 맞다고 생각하는데요.. 물론 기분나쁘라고 한건아님니다. . . .

dgkim의 이미지

책을 바꿀 수 있다면 좋을 것 같습니다.

dgkim의 이미지

#include <stdio.h>
 
void main()
{
    do_magic_tricks();
}
세벌의 이미지

컴파일 결과 보여주셔요.

질문 내용 보면

#include <stdio.h>
#include <termiso.h>
 
void main()
{
char ch = 0;
ch = getch();
printf("%d\n", ch);
}

소스코드는 이렇게 하신 거 같은데... 맞나요?
익명 사용자의 이미지

컴파일은 일단 해보겠습니다.

익명 사용자의 이미지

해봤는데 termiso.h. 에서 오류가 나오내요......
그런파일이 없다고 하네요....
도와주세요...

익명 사용자의 이미지

이게 사진입니다.
왜이런 오류가 나는 걸까요?

댓글 첨부 파일: 
첨부파일 크기
Image icon 스크린샷, 2017-09-22 18-58-49.png98.6 KB
익명 사용자의 이미지

혹시나해서 curses.h. 써봤더니 역시나... 오류가 나네요

댓글 첨부 파일: 
첨부파일 크기
Image icon 스크린샷, 2017-09-22 19-12-11.png96.89 KB
W@rr0ck의 이미지

제가 직접 만들어논 getch.h파일이 있는데 이걸로 #include"getch.h" 로 해서 컴파일 해보세요.
아래 소스코드 |
\/

#include <stdio.h>
#include <termio.h>
int getch(void){
int ch;
struct termios buf, save;
tcgetattr(0,&save);
buf = save;
buf.c_lflag &= ~(ICANON|ECHO);
buf.c_cc[VMIN] = 1;
buf.c_cc[VTIME] = 0;
tcsetattr(0, TCSAFLUSH, &buf);
ch = getchar();
tcsetattr(0, TCSAFLUSH, &save);
return ch;
}

세벌의 이미지

cat char.c

댓글 달기

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