728x90
타입을 주의하여 사용하여야 한다. 가령 예를 들어, 다음에서 보면,
static int part_unlock (struct mtd_info *mtd, loff_t ofs, size_t len)
{
struct mtd_part *part = PART(mtd);
if ((len + ofs) > mtd->size)
return -EINVAL;
printk(__FUNCTION__ ": ofs = %Lx, part->offset = %lx, len = %lx n", ofs, part->offset, (unsigned int)len);
return part->master->unlock(part->master, ofs + part->offset, len);
}
ofs는 loff_t 타입인데, loff_t 타입은 long long 타입의 typedef 이다.
따라서, ofs 값을 표시할 때, 위와 같이 %L (L은 long long type) 을 사용하지 않고, %l 이나, %x 등을 사용하면,
ofs 값이 제대로 출력되지 않을 뿐 아니라, 뒤에 출력하는 값마저 영향을 받아서 엉뚱한 값이 출력된다.
static int part_unlock (struct mtd_info *mtd, loff_t ofs, size_t len)
{
struct mtd_part *part = PART(mtd);
if ((len + ofs) > mtd->size)
return -EINVAL;
printk(__FUNCTION__ ": ofs = %Lx, part->offset = %lx, len = %lx n", ofs, part->offset, (unsigned int)len);
return part->master->unlock(part->master, ofs + part->offset, len);
}
ofs는 loff_t 타입인데, loff_t 타입은 long long 타입의 typedef 이다.
따라서, ofs 값을 표시할 때, 위와 같이 %L (L은 long long type) 을 사용하지 않고, %l 이나, %x 등을 사용하면,
ofs 값이 제대로 출력되지 않을 뿐 아니라, 뒤에 출력하는 값마저 영향을 받아서 엉뚱한 값이 출력된다.
728x90
'Research > SystemProg' 카테고리의 다른 글
A Map of the Networking Code in Linux Kernel 2.4.20 (0) | 2005.11.22 |
---|---|
kernel 파라미터 조정하기 (0) | 2005.07.28 |
MIPS linux cross compiler 제작예제 (0) | 2005.06.15 |
context switching animation(x86) - ucos (0) | 2005.02.28 |
strongarm의 명령 한라인 수행하는데 걸리는 클럭과 계산 하는 방법을 알고 싶습니다 .. (0) | 2004.06.13 |