커널 모듈 프로그래밍 도사님 도와주세요... 파일처리 좀 봐주세요.

cs010101의 이미지

char buf[1];

... 생략...

if(fd >= 0){
printk(KERN_DEBUG);
while(sys_read(fd, buf, 1) == 1)
printk("IP : %c", buf[0]);


printk("\n");

sys_close(fd);
}

보시는 바와 같이, 버퍼내용을 출력해 줍니다.

읽은 텍스트파일은 예를 들면,

192.168.0.1
192.168.0.2
192.168.0.3

이렇고요, 이것이 buf에 들어가있고
이것을

IP : 192.168.0.1
IP : 192.168.0.2
IP : 192.168.0.3

이렇게 출력 해주고 싶습니다.

그러나 막상 출력 되는 것을 보니,

IP : 1IP : 9IP : 2IP : .IP : 1IP : 6IP : 8IP : .IP : 0IP : .IP : 2IP :
IP : 1IP : 9IP : 2IP : .IP : 1IP : 6IP : 8IP : .IP : 0IP : .IP : 3IP :
IP :

이렇게 나옵니다.

어떻게 하면 되나요?

감사합니다.

kasi의 이미지

printk("IP : %c", buf[0]);

이거 보면

"IP" 한번찍고 문자 하나찍고 하는식으로 되어있네요

"IP" 하나 찍고 캐리지 리턴 나올때까지 루프 돌면서 한문자씩 파일에서 읽어 들인후 찍고

다시

"IP" 찍고 캐리지 리턴 나올때까지 루트 돌면서 찍는 식으로 바꿔야 겠네요.

그리고 왜 저렇게 나오는지 모르신다면 모듈 프로그래밍 공부하시기 전에 c문법부터 다시 보셔야 할듯;;

gaedol의 이미지

buf가 char buf[1] 이니 문자 하나씩 밖에 들어 가지 못하겠군요..

그렇다면 굳이 buf[1] 로 선언하지 않고 buf로 선언하더라도 상관은 없겠군요..

--------------------------------------------

김의국, Kim Euikook

"끝" 시작의 준말.

gaedole at nate.com (NateOn)
gaedole at gmail.com (MSN)
http://gaedol.org (HOME)
http://b.gaedol.org (BLOG)

--------------------------------------------

김의국, Kim Euikook

"끝" 시작의 준말.

gaedole at nate.com (NateOn)
gaedole at gmail.com (MSN)
http://gaedol.org (HOME)
http://b.gaedol.org (BLOG)

cs010101의 이미지

저도 그렇게 생각하는데요,
그럼 버퍼를 팍 잡아놓고, 캐리지리턴마다 자르면 되겠네요?

그런데 문제가 또 있는데요, 결과를 보시면 아시겠지만
3줄 리스트인데,

첫째줄은 안나오고 나머지 두줄만 나옵니다.

왜 그럴까요?

-----------------------------------------------
어머니,
그 이름만으로도 우리는 풍요로와 집니다.

효도합시다......
-----------------------------------------------

cs010101의 이미지

삭제문제 해결했습니다.

감사합니다.

-----------------------------------------------
어머니,
그 이름만으로도 우리는 풍요로와 집니다.

효도합시다......
-----------------------------------------------

댓글 달기

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