[질문] 시리얼 프로그램 출력과 minicom 출력이 다른 이유

formidea의 이미지

안녕하세요.
기초적인 질문하나 드리려구요.
시리얼 포트로 입력을 받아들여서 프린트 해보는 간단한 프로그램을 작성했습니다. 출력했던 코드 부분은 다음과 같구요.

while (STOP==FALSE) {
  res = read(fd,buf,255);  
  buf[res]=0;               
  printf("%s", buf);
 
  if (buf[0]=='z') STOP=TRUE;                                               }

재밌는 점은 이 프로그램을 테스트 한다고, gumstix 보드를 시리얼 포트에 연결해서 실행시켰더니, 얼추 비슷하게 찍히는데 몇가지 다른점들이 있습니다. 예를 들면,

Scanning JFFS2 FS: .... /

이 부분이 minicom에서는 '/' '|' '\' '-' '/' '|' 이런 문자가 같은 자리에서 찍히면서
풍차돌아가듯이 나오는데, 제 프로그램 출력에서는 그렇지 않구요.

Welcome to the Gumstix Linux Distribution!
 
gumstix login:

minicom에서는 이렇게 나오지만, 제 프로그램 출력에서는 "gumstix login:" 부분은 나오지 않습니다.

blocking/non-blocking read (혹은 synchronous/asynchronous)를 다 시도해보았지만,
달라지지 않는 것으로 보아 그것은 상관없는 것 같구요.
왜 두가지 출력이 다르고, 제 프로그램에서 minicom에서 나오는 것 처럼 찍어주려면,
무엇을 달리해야하는지 궁금합니다.
조언을 부탁드립니다.
감사합니다.

planetarium의 이미지

printf() 바로 뒤에 fflush(stdout); 을 붙여보세요.

drinkme의 이미지

tty에서 read()한 거라면,
terminal 설정을 하셔야 합니다.

가령,
님의 프로그램을 실행 전에
~ $ stty raw nl -iexten -echo -ixon -ixoff -crtscts < /dev/ttyS0

를 하고 해 보세요.

tcsetattr()같은 함수를 함 써보심이.

formidea의 이미지

:-) 빠른 답변 감사드립니다. 잘 나오는군요.
사소한거지만 한가지만 더 질문드리겠습니다.
다른것은 다 minicom 츨력과 똑같이 찍히는데, 마지막에 "gumstix login:"에서
":" 콜론이 안찍힙니다. 수차례 시도했지만 결과는 바뀌지 않는군요.
이건 어떤 이유에서일까요?
감사합니다.

댓글 달기

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