【发布时间】:2014-11-10 08:11:31
【问题描述】:
我正在尝试创建一个示例(以帮助我理解以下概念):
子进程继承其父进程的打开文件。 可以在这张图中看到http://www.cs.ucsb.edu/~rich/class/cs170/notes/FileSystem/filetable.rich.jpg
这是我的代码:
FILE* f = fopen("test.txt", "r");
if(fork()==0){
printf("%c", fgetc(f) ); //should print e
printf("%c", fgetc(f) ); //should print s
printf("%c", fgetc(f) ); //should print t
printf("\n");
} else {
printf("%c", fgetc(f) ); // print t
}
test.txt 包含单词test。
假设父母先运行,如果父母和孩子有相同的描述符表,系统不应该输出t(from parent)est(from children)。当前输出为t▒▒▒▒。
谢谢 丹尼尔
【问题讨论】: