【问题标题】:When will the file descriptor be allocated to a file?什么时候将文件描述符分配给文件?
【发布时间】:2018-12-22 16:58:59
【问题描述】:

我已经通过一些技术博客、谷歌、维基百科甚至 Youtube 视频教程搜索过它,但我仍然感到困惑,因为它似乎与我的老师要求我做的相反。

1.打开或创建文件后,文件描述符何时分配给文件?

2.如果文件描述符是在文件打开后分配的,我可以使用open(int fileDescriptors, int mode)之类的函数来打开文件吗?如何? (因为这是我的老师要求我做的)。如果我做不到,也许老师错了。

我希望我的问题很清楚。

【问题讨论】:

  • “我希望我的问题很清楚。”很遗憾没有。
  • 你可能混淆了一些东西。文件描述符的变量在声明 int fd = -1; 中分配,关联的文件资源通过 open() 调用分配,如 fd = open("MyFile.txt");

标签: file operating-system


【解决方案1】:

首先,您所说的“文件描述符”是一个太监概念,并非所有操作系统都存在。

具体操作因变体而异。冒着过度概括的风险,每个进程都有许多文件描述符(512 和 1024 是常用值)。通常,这些描述符中的大多数都未被使用。描述符必须映射到文件才能使用。

1.打开或创建文件后,文件描述符何时分配给文件?

创建文件会打开文件。打开文件时映射描述符。

2.如果文件描述符是在文件打开后分配的,可以使用open(int fileDescriptors, int mode)之类的函数来打开文件吗?

文件描述符在文件打开之前就存在。打开将文件映射到描述符。

【讨论】:

    猜你喜欢
    • 2019-06-03
    • 2017-04-13
    • 1970-01-01
    • 1970-01-01
    • 2010-09-08
    • 2023-03-06
    • 1970-01-01
    • 2013-03-20
    • 2015-01-04
    相关资源
    最近更新 更多