open(),close() 打开/关闭文件

时间:2021-04-04 23:29:07

Open

open()是一个系统调用函数,用来打开或创建一个文件,通过不同的oflag选项实现不同功能。

使用时open()函数需要包含的头文件:<sys/types.h>,<sys/stat.h>,<fcntl.h>

函数原型:

  int open(const char *pathname, int oflags);

  int open(const char *pathname, int oflags, mode_t mode);

参数列表:

  pathname:要打开或创建的文件的全路径名

  oflag:函数选项(可以是用 ' | ' 传递多个选线实现不同功能)。     

  O_RDONLY(只读打开)、

  O_WRONLY(只写打开)、

  O_RDWR(读写打开)中的一个于下列一个或多个常数

  O_APPEND: 追加到文件尾 O_CREAT: 若文件不存在则创建它。使用此选择项时,需同时说明第三个参数mode,用其说明新闻件的访问权限

  O_EXCL: 如果同时指定

  O_CREAT,而该文件又是存在的,报错;也可以测试一个文件是否存在,不存在则创建。

  O_TRUNC: 如果次文件存在,而且为读写或只写成功打开,则将其长度截短为0 O_SYNC: 使每次write都等到物理I\O操作完成。

  mode:对于open而言,仅当是用 O_CREAT 选项是才使用此参数,表示新建文件的权限设置。文件权限使用 3位 8进制数 (eg:0666)表示。

返回值:

  成功返回文件描述符,出错返回-1 。

Close

close()是一个系统调用函数(systemcall)。作用关闭一个打开的文件。

需要包含的头文件:<unistd.h>

函数原型:

  int close(int fd)

参数:

  fd:需要关闭文件的文件描述符。

返回值:

  成功返回 0;   出错返回 -1;

  当一个进程终止的时候,它所有的打开文件都是由内核自动关闭。很多程序都使用这一功能而不显式地调close关闭一个已打开的文件。 但是,作为一名优秀的程序员,应该显式的调用close来关闭已不再使用的文件。

使用open创建一个文件,close关闭:open.c

 #include <stdio.h>
#include <unist.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h> #define FILE_PATH "./test.txt" int main(void)
{
int fd;
   /*创讲一个权限为0666的文件,并以读写方式打开,若文件已存在进行提示*/
if ((fd = open(FILE_PATH, O_RDWR | O_CREAT | O_EXCL, )) < ) {
printf("open error\n");      /*当前目标已存在test.txt文件,打印“open error”*/
exit(-);
} else {
printf("open success\n");     /*不存在创建该文件,打印“open success”*/
}
19   close(fd);        /*关闭文件*/
20 return ;
}

open(),close() 打开/关闭文件的更多相关文章

  1. 根据python上下文管理,写一个在读文件内容前后自动打开关闭文件的程序

    利用上下文管理实现读f文件前后自动打开关闭文件#在本目录创建f文件,内容写monkey代码如下 import contextlib #导入模块1 @contextlib.contextmanager# ...

  2. fopen&lpar;&rpar;,fclose&lpar;&rpar; 打开&sol;关闭文件

    打开/关闭/刷新流 1. fopen() 打开流 功能: 1)fopen()打开由 path指定的一个文件. 2)fdopen()获取一个先有的文件描述符,并使一个标准的I/O流与该描述相结合.此函数 ...

  3. &lbrack;Python&rsqb; python3 文件操作:从键盘输入、打开关闭文件、读取写入文件、重命名与删除文件等

    1.从键盘输入 Python 2有两个内置的函数用于从标准输入读取数据,默认情况下来自键盘.这两个函数分别是:input()和raw_input(). Python 3中,不建议使用raw_input ...

  4. PHP怎么打开或者关闭文件?

    什么是文件处理? 文件处理包括读取,关闭,重写等.掌握文件的处理需要读者理清思路,掌握好文件处理的关键步骤和常用函数,那么就可以运用自如了!感兴趣的请移步php文件处理专题. 比如,访问一个文件需要 ...

  5. java io流(字符流) 文件打开、读取文件、关闭文件

    java io流(字符流) 文件打开 读取文件 关闭文件 //打开文件 //读取文件内容 //关闭文件 import java.io.*; public class Index{ public sta ...

  6. notepad&plus;&plus; 开启&sol;关闭 记住最后打开的文件

    开启记住最后打开的文件 1) 6.3以前版本如下设置: 设置-->首选项-->其他 把左下角的 "记住最后打开文件" 勾选. 2) 6.3以后版本如下设置: 设置--& ...

  7. 从零开始学C&plus;&plus;之IO流类库(二):文件流(fstream&comma; ifstream&comma; ofstream)的打开关闭、流状态

    一.文件流 ofstream,由ostream派生而来,用于写文件 ifstream,由istream派生而来, 用于读文件 fstream,由iostream派生而来,用于读写文件 二.打开文件 说 ...

  8. Notepad&plus;&plus;如何关闭最近打开的文件的历史记录功能

    Notepad++是Windows 操作系统下的一套非常有特色的*软件的纯文字编辑器(许可证:GPL),有完整的中文化接口及支持多国语言编写的 功能(UTF8 技术).它的功能比Windows中的N ...

  9. 文件流(fstream&comma; ifstream&comma; ofstream)的打开关闭、流状态

    一.文件流 ofstream,由ostream派生而来,用于写文件 ifstream,由istream派生而来, 用于读文件 fstream,由iostream派生而来,用于读写文件 二.打开文件 说 ...

随机推荐

  1. Eclipse中的Link with Editor功能是如何实现

    Eclipse中的Link with Editor功能是如何实现 - kaukiyou的专栏 - 博客频道 - CSDN.NEThttp://blog.csdn.net/kaukiyou/articl ...

  2. 转&colon;Java NIO系列教程&lpar;七&rpar; Socket Channel

    Java NIO中的SocketChannel是一个连接到TCP网络套接字的通道.可以通过以下2种方式创建SocketChannel: 打开一个SocketChannel并连接到互联网上的某台服务器. ...

  3. spring来了-04-AOP

    概述 aspect object programming 面向切面编程 功能:可以实现“业务代码”与“关注点代码”分离 关注点代码:就是指重复执行的代码 业务代码:核心的业务功能 运行期间,执行核心业 ...

  4. SQL数据库基本语句

    SQL特点--> 1)综合统一.SQL是集数据定义.数据操作和数据控制于一体,语言峰峰统一,可独立完成数据库生命周期的所有活动. 2)高度非过程化.SQL语言是高度非过程化语言,当进行数据操作时 ...

  5. uva 10564

    Problem FPaths through the HourglassInput: Standard Input Output: Standard Output Time Limit: 2 Seco ...

  6. 4&period;VS2010C&plus;&plus;建立DLL工程

    相关资料: http://blog.csdn.net/jshayzf/article/details/23608705 http://blog.csdn.net/huang_xw/article/de ...

  7. 编写你自己的单点登录(SSO)服务

    王昱 yuwang881@gmail.com   博客地址http://yuwang881.blog.sohu.com 摘要:单点登录(SSO)的技术被越来越广泛地运用到各个领域的软件系统其中.本文从 ...

  8. 保持查询语法指示的联接顺序Option&lpar;Force order&rpar;

    Option(Force order) 今天和大家分享一下 SQL中强制执行联接顺序Option(Force Order) 一.SQL本身SQL引擎优化已经做的非常好了,但是也有默认的多表连接引擎效果 ...

  9. java学习笔记day04

    1.static关键字  特点:1)随着类的加载而加载        2)优先于对象存在        3)被所有对象所共享        4)可以直接被类名调用(类名.静态成员) 注意:静态方法只能 ...

  10. SUP &lpar;SAP Mobile SDK 2&period;2&rpar; 连接 Sybase SQL Anywhere sample 数据库

    安装了   SAP Mobile SDK 2.2   后发现,这个版本没有自带Sybase SQL Anywhere  数据库. 解决办法: 1. 免费下载 SQL Anywhere Develope ...