2017-11-13 2 views
0

코어 파운데이션의 소스 코드를 읽었습니다. CHECK_FOR_FORK 코드가 많이 있습니다. 나는 이것이 무엇을 의미하고 그것의 사용이 무엇인지 모릅니다. 누군가 저를 도울 수 있습니까?CHECK_FOR_FORK의 의미는 무엇입니까?

#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI 
extern uint8_t __CF120293; 
extern uint8_t __CF120290; 
extern void __THE_PROCESS_HAS_FORKED_AND_YOU_CANNOT_USE_THIS_COREFOUNDATION_FUNCTIONALITY___YOU_MUST_EXEC__(void); 
#define CHECK_FOR_FORK() do { __CF120290 = true; if (__CF120293) __THE_PROCESS_HAS_FORKED_AND_YOU_CANNOT_USE_THIS_COREFOUNDATION_FUNCTIONALITY___YOU_MUST_EXEC__(); } while (0) 
#define CHECK_FOR_FORK_RET(...) do { CHECK_FOR_FORK(); if (__CF120293) return __VA_ARGS__; } while (0) 
#define HAS_FORKED() (__CF120293) 
#endif 

답변

0

포킹은 프로세스 자체의 복사본을 생성하는 시스템 호출이다 : 여기

는 예 단편이다. CHECK_FOR_FORK은 코드에서 지정된 프로세스가 분기되었는지 여부를 확인하는 부울 값입니다.

Wikipedia에서 분기에 대해 자세히 알아보십시오.