mkdir
커널 소스를 보면서 함수가 어떻게 작동하는지 이해하려고합니다 . 이것은 커널 내부를 이해하고 다양한 기능을 탐색하려는 시도입니다. mkdir
에 정의되어 있음을 알고 sys/stat.h
있습니다. 프로토 타입을 찾았습니다.
/* Create a new directory named PATH, with permission bits MODE. */
extern int mkdir (__const char *__path, __mode_t __mode)
__THROW __nonnull ((1));
이제이 함수가 어느 C 파일에 구현되어 있는지 확인해야합니다. 소스 디렉토리에서 시도했습니다
ack "int mkdir"
어느 표시
security/inode.c
103:static int mkdir(struct inode *dir, struct dentry *dentry, int mode)
tools/perf/util/util.c
4:int mkdir_p(char *path, mode_t mode)
tools/perf/util/util.h
259:int mkdir_p(char *path, mode_t mode);
그러나 이들 중 어느 것도의 정의와 일치하지 않습니다 sys/stat.h
.
질문
- 어떤 파일이
mkdir
구현되어 있습니까? - 위와 같은 함수 정의를 사용하여 어떤 파일이 구현되어 있는지 어떻게 알 수 있습니까? 메소드를 정의하고 구현할 때 커널이 따르는 패턴이 있습니까?
참고 : 커널 2.6.36-rc1 사용하고 있습니다.