close() - Unix,Linux 系统调用 - 技术教程
Tutorials Point


  Unix 初学者指南
  Unix Shell 编程
  高级 Unix
  Unix 有用参考
  Unix 有用资源
  精选阅读

版权所有 © 2014 tutorialspoint



  首页     参考     讨论论坛     关于 TP  

close() - Unix,Linux 系统调用


previous next AddThis Social Bookmark Button

广告

名称

close - 关闭文件描述符

语法

#include <unistd.h> 

int close(int fd);

描述

close() 关闭文件描述符,使其不再引用任何文件,并且可以重复使用。它与关联的文件相关的任何记录锁(参见 fcntl(2))以及由进程拥有的记录锁都被移除(无论用于获取锁的文件描述符是什么)。

如果 fd 是特定文件描述符的最后一个副本,则与其关联的资源将被释放;如果描述符是对使用 unlink(2) 删除的文件的最后一个引用,则该文件将被删除。

返回值

close() 成功时返回零。发生错误时,返回 -1,并且 errno 被相应地设置。

错误

标签描述
EBADF fd 不是有效的打开文件描述符。
EINTR close() 调用被信号中断。
EIO 发生 I/O 错误。

符合标准

SVr4、4.3BSD、POSIX.1-2001。

备注

不检查 close() 的返回值是一个常见但仍然很严重的编程错误。先前的 write(2) 操作上的错误很有可能在最终的 close() 中报告。在关闭文件时不检查返回值可能会导致数据静默丢失。这尤其在 NFS 和磁盘配额中观察到。

成功的关闭并不保证数据已成功保存到磁盘,因为内核会延迟写入。文件系统在流关闭时刷新缓冲区并不常见。如果您需要确保数据已物理存储,请使用 fsync(2)。(此时将取决于磁盘硬件。)

参见



previous next Printer Friendly

广告


  

广告



广告
© . All rights reserved.