每次调用open函数就会分配一个新的文件表项,但是因为打开的是同一文件,则两个文件表项指向相同的v-node。调用dup引用已存在的文件表项。
例:
fd1 = open(path, oflags);
fd2 = dup(fd1);
fd3 = open(path, oflags);
fd1和fd2指向同一文件表项。fd1和fd3指向两个不同的文件表项,但是这两个不同的文件表项指向的是同一个v-node。
每次调用open函数就会分配一个新的文件表项,但是因为打开的是同一文件,则两个文件表项指向相同的v-node。调用dup引用已存在的文件表项。
例:
fd1 = open(path, oflags);
fd2 = dup(fd1);
fd3 = open(path, oflags);
fd1和fd2指向同一文件表项。fd1和fd3指向两个不同的文件表项,但是这两个不同的文件表项指向的是同一个v-node。