커널 모듈 프로그래밍 도사님 도와주세요... 파일처리 좀 봐주세요.
글쓴이: cs010101 / 작성시간: 목, 2007/04/12 - 10:23오후
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 :
이렇게 나옵니다.
어떻게 하면 되나요?
감사합니다.
Forums:
printk("IP : %c", buf[0]);
printk("IP : %c", buf[0]);
이거 보면
"IP" 한번찍고 문자 하나찍고 하는식으로 되어있네요
"IP" 하나 찍고 캐리지 리턴 나올때까지 루프 돌면서 한문자씩 파일에서 읽어 들인후 찍고
다시
"IP" 찍고 캐리지 리턴 나올때까지 루트 돌면서 찍는 식으로 바꿔야 겠네요.
그리고 왜 저렇게 나오는지 모르신다면 모듈 프로그래밍 공부하시기 전에 c문법부터 다시 보셔야 할듯;;
buf가 char buf[1] 이니
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)
네....
저도 그렇게 생각하는데요,
그럼 버퍼를 팍 잡아놓고, 캐리지리턴마다 자르면 되겠네요?
그런데 문제가 또 있는데요, 결과를 보시면 아시겠지만
3줄 리스트인데,
첫째줄은 안나오고 나머지 두줄만 나옵니다.
왜 그럴까요?
-----------------------------------------------
어머니,
그 이름만으로도 우리는 풍요로와 집니다.
효도합시다......
-----------------------------------------------
*^_^*
삭제문제 해결했습니다.
감사합니다.
-----------------------------------------------
어머니,
그 이름만으로도 우리는 풍요로와 집니다.
효도합시다......
-----------------------------------------------
댓글 달기