본문 바로가기

Programming/Android

init.c main에서 ueventd_main 실행 ???

반응형
    if (!strcmp(basename(argv[0]), "ueventd"))
        return ueventd_main(argc, argv);

 init.c 의 main 함수를 보면 ueventd_main 을 실행하는 부분이 있습니다. 책에서도 먼저 실행된다고 되어 있습니다.
하지만 아무리 생각해 봐도 argv[0] 은 파일명인데... 어떻게 이게 다른 파일인 "ueventd" 가 될수 있는 걸까요?

파일명이 차이가 나는 이유는 ueventd가 init의 심볼릭링크라서 그렇다는 군요.

그리고 init보다 ueventd가 먼저 실행되는 이유는 이 코드가 아닌 전혀 다른 곳에 있었습니다.
init.rc 파일을 보면 다음과 같이 있습니다.

on early-init
        start ueventd
.....

init이 시작될때 ueventd를 실행하라고 되어 있습니다. 그래서 먼저 실행되는 것이라고 합니다.

반응형