【发布时间】:2018-04-13 22:50:11
【问题描述】:
我在理解这些概念的工作原理时遇到问题,如果您能帮助我,请记住,我在 C 或 OS 相关方面没有太多经验。
我意识到,当我创建子进程文本时,会复制数据和堆栈,并且该子进程可以访问以前打开的文件描述符。我尝试从主函数运行类似的东西
...
pid = fork();
if(pid > 0) {
pid = wait(&child_status);
fprintf(fp, "smth");
}
else if (pid == 0) {
fclose(fp);
}
事实证明它确实将“smth”打印到与 fp 流关联的文件中。
问:这是否意味着当我创建子进程并在子进程中关闭它时,程序和文件之间的连接是重复的,不会影响父进程或者无法关闭子进程内的连接?
【问题讨论】: