리눅스 커널 모듈에는 unsigned int fd
에서 파일 이름/경로를 가져 오는 방법이 있습니까?Linux 커널 모듈의 파일 설명자에서 파일 이름/경로를 가져 옵니까?
저는이 답변을 알고 있습니다 : How can I get a filename from a file descriptor inside a kernel module?하지만 코드를 올바르게 이해하면 struct files_struct
도 필요합니다.
편집 :
가 아니므로 중복으로 투표를 중지하십시오. 나는 시스템 모듈을 사용하지 않고 커널 모듈에서 평범한 C로 파일의 이름/경로를 얻는 방법을 요구하고있다. 다른 말로하면 :/procself/fd /에서 readlink를 실행하는 것은 이 아니라입니다.
편집 2 :
는는 커널의 시스템 콜은 ssize_t read(int fd, void *buf, size_t count);
3 개 인수, 그 중 하나가 FD되는 소요 읽어 보시기 바랍니다. 어떻게 든 read
은 (inode 내부의 모든 파일 대신) 단일 파일에서 읽을 수 있다는 것은 명백합니다. 문제는 방법입니다.
하드 링크의 경우 파일에 여러 경로가있을 수 있습니다. 어떻게하면 올바른 경로를 찾았는지 알 수 있습니까? –
[C의 파일 설명자에서 파일 이름 가져 오기] 가능한 복제본 (http://stackoverflow.com/questions/1188757/getting-filename-from-file-descriptor-in-c) –
@CarlNorum 아마도 이것은 반환함으로써 회피 될 수 있습니다. 캐릭터 라인의 배열 –