printk에서 파라미터 순서에 따른 출력값의 변화
글쓴이: jongsuknim / 작성시간: 토, 2005/01/29 - 11:05오후
printk( "file %x\n" , filp->f_pos );
printk( "count %x \n" , count );
printk( "f_pos %x \n" , *f_pos );
printk( "read %x %x c %x\n" , filp->f_pos , *f_pos , count );
printk( "read c %x %x %x\n" , count, filp->f_pos , *f_pos );
printk( "read %x c %x %x\n\n" , filp->f_pos , count , *f_pos );
이런식으로 한줄로 연속으로 같은 값을 출력 순서만 달리하여 출력해 보았습니다.
결과는
file 0
count 1
f_pos 0
read 0 0 c 0
read c 1 0 0
read 0 c 0 1
여기서 알아보기 쉽게 count의 값 앞에 c를 붇여 봤는데.. 이처럼 지멋대로 바뀝니다... 이거 혹시 버그.. 인가요? ㅡㅡ;;
Forums:
32bit 64bit type관련한 문제가 아닐까 싶은데요..
32bit 64bit type관련한 문제가 아닐까 싶은데요..
자세히좀.. 설명해주세요...
자세히좀.. 설명해주세요...
그냥 짐작입니다만.. f_pos는 64bit type이고 포인터는 64b
그냥 짐작입니다만.. f_pos는 64bit type이고 포인터는 64bit인지 32bit인지 알수없고 count는 32bit일것같습니다. kprintf가 long long type을 잘 다루지 못하던 기억이 있습니다만 요즘은 패치되었을지도....
타입 확인해가면서 한바이트씩 나눠서 찍어보면 확실할것 같네요..
댓글 달기