d_path() 써보신분 ㅡ.ㅡ.

hankm2004의 이미지

sys_write() 에서 넘어 오는 fd 로 d_path 를 써서

파일 경로를 알아 내려구 하는데.

커널 2.4 에서는 vfsmount 타입의 변수가 하나 더 생겼더군요

그래서 이것 저것 넣어 봤는데

쓰레기 값만 나오네여

혹시 d_path 써보신 분이나

다른 방법 아시는 분

조언 부탁 드립니다.

hankm2004의 이미지

새로 생긴 두번째 인자는 vfsmount 형 인자는 첫번째 인자인 dentry 가 속해 있는 마운트 포인트 더군요

d_path(dentry *, vfsmount , char *, size_t) 인 가 그런데

주어진 fd 를

struct file *file ;
char buf[500];
char *filename;

file = fget(fd);

filename = d_path(file->f_dentry, file->f_parent, buf, 500);

이렇게 하면 되더군요

아무튼 그렇습니다.

금 이만..............

저는 이제 막 커널을 공부하기 시작한 사람입니다.

부디, 고수님을의 많은 조언 부탁 드리겠습니다.