Korea FreeBSD Users Group News, Internal, Projects, Home
Software, Support, Documentation

Re: [KFUG] inode filename ?



[ ³¯Â¥¼ø »öÀÎ ] [ ´ñ±Û¼ø »öÀÎ ] [ ÃÖ»óÀ§ »öÀÎ] [ °Ë»ö]

[ÀÌÀü ±Û] [´ÙÀ½ ±Û] [ÀÌÀü ´ñ±Û] [´ÙÀ½ ´ñ±Û]


On Wed, Nov 12, 2003 at 10:20:02PM +0900, 이수관 wrote:
 > inode 값이 있을 때 pathname 을 알 수 있는 방법이 있을까요?
 > 커널에서 printf 로 inode 값을 찍고 있는데 해당하는 파일(PATHNAME)을 알고
 > 싶습니다.

어떤 위치인지에 따라서 다릅니다.
즉 namei(9)후 vnode를 받게되면 이름을 알수가 없습니다.
(커널은 이름을 알 필요가 없습니다.)
namei(9)호출전에 파일이름을 저장하거나 이후의 user-level에서
검색하셔야 합니다.

inode <-> pathname변환은 간단한것 같지만 그렇지 않습니다.
가장 복잡한 operation중의 하나이고 입력된 pathname은
hardlink, symbolic link, relative pathname, absolute
pathname, device file, socket등 너무나 다양하기 때문에
커널에서 namei(9)변환후 입력된 정확한 이름을 알기는 사실상
불가능합니다.
(vnode에서 mount point와 inode를 따라다니면서 역순으로 검색할
수도 있겠지만 이경우에도 absolute path만 알수있습니다. user가 
입력한 relative pathname값을 찾을수는 없습니다.)

 > find / -inum xxx 은 너무 오래 걸리는군요...
 > 리눅스에서는 debugfs를 쓰면 알 수 있었던거 같은데 FreeBSD 에도 비슷한
 > 프로그램이
 > 있으면 알려주셨으면 합니다.
 > 
 > 감사합니다.
 > 
 > --
 > 이수관
 > 
-- 
Pyun YongHyeon <http://www.kr.freebsd.org/~yongari>
_______________________________________________
한국 FreeBSD 사용자 그룹(KFUG) questions 메일링 리스트
questions at kr.FreeBSD.org
http://www.kr.FreeBSD.org/mailman/listinfo/questions


[ ³¯Â¥¼ø »öÀÎ ] [ ´ñ±Û¼ø »öÀÎ ] [ ÃÖ»óÀ§ »öÀÎ] [ °Ë»ö]

Copyright © 1998-2005 Korea FreeBSD Users Group.
All rights reserved. webmaster at kr.FreeBSD.org
$Date: 2003/11/13 12:59:23 $
Powered by FreeBSD