filp->f_pos 에 관한 질문 드립니다.

withpiano의 이미지

캐릭터 디바이스 드라이버쪽을 보고 있는데,
파일 포인터 filp->f_pos에 대해서는 몸으로 확~ 느껴지지 않네요 =.=

device_read(.....)
{
    ...
    ...
    filp->f_pos = filp->f_pos + count;

}

이렇게 파일 포인터의 f_pos가 쓰여지도 있었습니다.

물론

device_write(.....)
{
    ...
    ...
    filp->f_pos = filp->f_pos + count;

}

과 같이 write() method에서도 쓰이고 있었습니다.

디아비스 드라이버에서 다음과 같이 캐릭터 어레이를 설정한 후에

char str[1024];

디바이스를 읽고 쓸때에는, 단순히 몇번째 array값을 읽고
몇번째 array값만 쓰는 것으로만 위치를 알게 할 수 있을
것 같은데요, 왜 f_pos변수를 사용하는 것인지..

궁금합니다.

익명 사용자의 이미지

logical하게 file으로 abstraction하기위해 그렇습니다. 그다지 별다른 의미는 없다고 봐도...