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


#include <sys types.h="">

#include <sys stat.h="">

#include <fcntl.h>



int creat(const char *pathname, mode_t mode);

</fcntl.h></sys></sys>

返回:若成功为只写打开的文件描述符,若出错为-1。注意,此函数等效于:


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

在早期的UNIX版本中,open的第二个参数只能是0、1或2。没有办法打开一个尚未存在的文件,因此需要另一个系统调用creat以创建新文件。现在,open函数提供了选择项O_CREAT和O_TRUNC,于是也就不再需要creat函数了。在4.5节中,我们将详细说明文件存取许可权,并说明如何指定mode。creat的一个不足之处是它以只写方式打开所创建的文件。在提供open的新版本之前,如果要创建一个临时文件,并要先写该文件,然后又读该文件,则必须先调用creat,close,然后再调用open。现在则可用下列方式调用open:


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

想进一步了解文件描述符的操作吗?可以看看fcntl函数复制文件描述符这篇文章。关于Linux系统中函数调用进行文件操作的详细说明,可以参考Linux系统函数调用文件操作。如果你对文件I/O编程有兴趣,linux系统文件I O编程也是一个不错的资源。

3.5 close函数可用close函数关闭一个打开文件:


#include <unistd.h>



int close (int filedes);

</unistd.h>

返回:若成功为0,若出错为-1。你是否好奇close和fclose的区别?这篇文章函数close于fclose的区别或许会给你答案。第3章文件I/O 37下载