你们谁能告诉我"int fileds "指的是什么?http://pubs.opengroup.org/onlinepubs/9699919799/functions/read.html
我注意到我可以在这里输入任何int,它似乎可以工作,但我不知道它是用来做什么的…
谢谢。
是一个文件描述符。见http://en.wikipedia.org/wiki/File_descriptor。由于它表示对文件和管道的表查找的偏移量,因此可能有多个可以返回有效数据的描述符。0=stdin和2=stderr默认存在,或者您可以查看open函数来创建自己的。
描述的第一句话是,"与打开的文件描述符fildes
相关联的文件"。换句话说,它指示您正在从中读取的文件。如果你的read
函数调用工作,无论你传递什么文件描述符,你的程序没有做你认为它是。
在内核内部的某个地方,有一个由每个进程的文件描述符条目组成的表。文件描述符是描述文件状态的结构。什么样的信息有一个文件描述符?首先,可以执行下一个读/写操作的位置。然后,文件的访问模式,由打开系统调用指定。最后但并非最不重要的是,一种表示文件磁盘上信息的数据结构。在*nix中,这是一个索引节点结构。这里,要回答的主要问题是:文件块在磁盘中的位置。如果您在内存中有一个文件的inode,那么您可以很快地找到文件的第n块在哪里(这意味着您不需要每次都解析路径,而是扫描路径中的每个目录来解析inode)。