CHECK_FOR_FORK是什么意思?

时间:2017-11-13 09:10:32

标签: ios core-foundation

我正在阅读Core Foundation的源代码。我看到很多代码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

1 个答案:

答案 0 :(得分:0)

分叉是系统调用,其中进程创建自身的副本。 CHECK_FOR_FORK是代码中的布尔值,用于检查给定进程是否已分叉。

详细了解Wikipedia上的分叉。