내가이 API를 가지고 하나의 라이브러리 지금 전화를 이 기능이 어떤 파일에서 호출되는지 어떻게 확인할 수 있습니까?
api2()
api1()
및
을 할 수 있습니다 내부적으로 API2도 API1를 호출해야 참조하십시오.그래서 내가하고 싶은 한 상황에서 다른 응용 프로그램이 API1를 호출 할 때 API2는() API1를 호출 할 때
- ()가 다음 몇 가지 특별한 일을 할 것입니다 그 특별한 일을해라.
어떻게하면됩니까?
api1()이 응용 프로그램이 아닌 라이브러리 자체에서 호출한다는 것을 알 수있는 방법이 있습니까?
편집 : 지금
api1()
{
sem_wait(); // this create deadlock
// do some task
sem_post();
}
API2()처럼
api2()
{
sem_wait();
api1();
sem_post();
}
볼이 내 두 기능 ... 어플은 sem_wait에서 작업 할 필요가 API1()를 호출 할 때와 sem_post하지만 api2() api1() 호출하면 죽은 자물쇠 만들기 때문에 다시 sem_wait 싶지 않아요 ...
내가 필요 som e 메커니즘 그래서 api1()은 api2()에서 호출되고 있는지 확인한 다음 sem_wait 및 sem_post를 사용하지 않습니다.
을 강조 선도 할 다른 두 가지, 그것을 호출하는 사람에 따라? – CodeCaster
수정 사항으로 인해 질문의 내용이 다소 바뀌 었습니다. 원래의 질문에 대한 IMO의 합리적인 나의 이전 답변은 이러한 편집에 비추어 위험한 것이므로 삭제했습니다. – ibid