文件描述符: 每个进程都有自己的文件描述符表,对于内核而言,所有打开文件都由文件描述符引用。文件描述符是一个非负整数。当打开一个现存文件或者创建一个新文件时,内核向进程返回一个文件 描述符。当读写一个文件时,用open和creat返回的文件描述符标识该文件,将其作为参数传递给read和write。 UNIX shell使用文件描述符0与进程的标准输入相结合,文件描述符1与标准输出相结合,文件描述符2与标准错误输出相结合。 这个数字在一个进程中表示一个特定含义,当我们open—个文件时,操作系统在内存中构建了一些数据结构来表示这个动态文件,然后返回 给应用程序一个数字作为文件描述符,这个数字就和我们内存中维护的这个动态文件的这些数据结构绑定上了,以后我们应用程序如果要操作这个动态文件,只需要用这个文件描述符区分。 文件描述符的作用域就是当前进程,出了这个进程文件描述符就没有意义了。 open (文件名,可选的打开方式,权限); 打开文件; 成功返回打开文件的文件描述符; 失败返回-1以及错误码。 close(文件描述符); 关闭文件描述符文件; 成功返回0; 失败返回-1自己错误码。 write (文件描述符,buf[ 大小],一般是read的返回值); 写入文件,把buf的数据写入文件,通常buf的大小和后面一次写入的大小一致; 成功返回写入的字节大小; 失败返回-1以及错误码。 read (文件描述符,buf[大小],一次读取的大小); 读取文件,把文件内容读到buf里,通常buf大小和后面一次读取的大小一致; 成功返回读取到的字节数,读完文件返回0; 失败返回-1以及错误码。 dup(文件描述符); 移动文件描述符到最小未使用的文件描述符空间; 成功返回移动到的文件描述符; 失败返回-1以及错误码。 dup2 (源描述符,目的描述符); 把源描述符移动到目的描述符; 成功返回新的文件描述符; 失败返回-1以及错误码。 |
文件的管理,权限,描述符
于 2023-02-03 14:58:41 首次发布
文件描述符是进程用于标识和操作文件的非负整数,如open和creat返回。标准输入关联0,标准输出1,标准错误2。通过open、close、read、write等系统调用来读写文件,dup和dup2用于复制或替换文件描述符。文件描述符的作用域限制于当前进程。
摘要由CSDN通过智能技术生成