分叉前叫什么?

6 process

很久以前,我去伦敦一家非常奇怪的公司面试,该公司自称是专业的 Unix 顾问。无论如何,这些人都是疯子,这家公司似乎不再存在也就不足为奇了,但在采访中他们问了我以下问题:

您开始新流程的第一个电话是什么?

所以我回答说第一个电话是fork。采访我的两个人说(非常坚持,好像我漏掉了什么很明显的东西)

你做叉子之前你会做什么电话?

Now, I have no idea about this question, and I have to say these people convinced me they were unmitigated idiots for reasons completely unrelated to this question, but for some reason this question still bugs me even now. Is there some call which is made before a fork? Is there some subtlety I missed out on?

msw*_*msw 7

我犹豫是否将其作为只能猜测的答案,但是:

  1. 如果孩子要在 exec 之前进行输出,则刷新 stdout。
  2. 关闭任何大于 2 的打开文件描述符,假设新进程期望从 shell 获得的“标准”环境。
  3. 一些像Eunice这样晦涩难懂的变体所需要的一些晦涩的东西,他们虽然很聪明地知道。

无论如何,问一个晦涩的事实问题都无法得出有关候选人的任何信息,除非他们可能会如何回答愚蠢的问题。

  • #2 错了。你会在叉子 * 之后 * 关闭不需要的句柄,而不是之前。父母仍然需要他们。 (3认同)