文件I/O(不带缓冲)之creat函数


也可调用creat函数创建一个新文件。

#include <fcntl.h>
 creat(   *pathname, mode_t mode );

返回值:若成功则返回为只写打开的文件描述符,若出错则返回-1。

注意,此函数等效于:

open( pathname, O_WRONLY | O_CREAT | O_TRUNC, mode );

在早期的UNIX系统版本中,open函数的第二个参数只能是0、1或2,没有办法打开一个尚未存在的文件,因此需要另一个系统调用creat以创建新文件。现在,open函数提供了选项O_CREAT和O_TRUNC,于是也就不再需要creat函数。

creat的一个不足之处是它以只写方式打开所创建的文件。在提供open的新版本之前,如果要创建一个临时文件,并要先写该文件,然后又读该文件,则必须先调用creat、close,然后再调用open。现在则可用下列方式调用open:

open( pathname, O_RDWR | O_CREAT | O_TRUNC, mode );

相关内容