可以使用库函数堆文件进行操作,同时也可以使用系统调用来进行文件操作。主要针对以下几个系统调用函数:

open(2)、close(2)、read(2)、write(2)、lseek(2)、fcntl(2)、select(2)等需包含头文件#include、#include、#include。

open(2)

int open(cosnt char *pathname,int flags,...)//...代表可变参数,取决于flags。

int open(cosnt char *pathname,int flags);

int open(cosnt char *pathname,int flags,mode_t mode);

功能:

打开一个文件或设备

参数:

pathname:指定文件路径的名称

flags:

O_RDONLY:只读方式打开

O_WRONLY:只写方式打开

O_RDWR:可读可写方式打开

以上参数3选一,根据需要按位或以下文件创建标志和文件状态标志选项。

O_CREAT:如果文件不存在,就创建一个新文件,并用第三个参数为其设置权限。

O_EXCL:如果使用O_CREAT时文件存在,则可返回错误消息,这一参数可测试文件是否存在。

O_NOCTTY:使用本参数,如果文件为终端,那么终端不可以作为调用open系统调用的那个进程控制终端。

O_TRUNC:如果文件存在,并且一只读或者只写方式成功打开,那么会先全部删除文件中原有的数据。

O_APPEND:以添加方式打开文件,打开文件的同时,文件指针指向文件的末尾。

mode:

被打开文件的存取权限,当使用O_CREAT选项时,此参数必须被提供。权限的有效性是提供权限和umask的运算结果。

使用ls -l选项,通过首字符可以辨识文件类型

-    普通文件

d    文件夹文件

b    块设备文件

c    字符设备文件

s    socket文件

l    软链接文件

p    管道文件

文件类型后面分为三组,代表不同的属性

rw-rw-r--,每三个字符一组,分别代表读写执行权限,称为ugo权限,从左至右分别为文件的所有者、组和其他人。所谓的 ugo 就是指 user(也称为 owner)、group 和 other 三个单词的首字母组合。

文件的所有者

文件的所有者一般是创建该文件的用户,对该文件具有完全的权限。在一台允许多个用户访问的 Linux 主机上,可以通过文件的所有者来区分一个文件属于某个用户。当然,一个用户也无权查看或更改其它用户的文件。

文件所属的组

假如有几个用户合作开发同一个项目,如果每个用户只能查看和修改自己创建的文件就太不方便了,也就谈不上什么合作了。所以需要一个机制允许一个用户查看和修改其它用户的文件,此时就用到组的概念的。我们可以创建一个组,然后把需要合作的用户都添加都这个组中。在设置文件的访问权限时,允许这个组中的用户对该文件进行读取和修改。

其他人

如果我想把一个文件共享给系统中的所有用户该怎么办?通过组的方式显然是不合适的,因为需要把系统中的所有用户都添加到一个组中。并且系统中添加了新用户该怎么办,每添加一个新用户就把他添加到这个组中吗?这个问题可以通过其他人的概念解决。在设置文件的访问权限时,允许其他人户对该文件进行读取和修改。

linux修改文件读写执行权限命令chmod见前面的笔记

文件或文件夹创建或打开有默认权限0666,通过设置umask权限掩码来设置创建文件或者文件夹的最终默认权限,umask+权限代码掩码即可设置umask,最终权限=mode&(~umask)

文件描述符

0    STDIN_FILENO

1    STDOUT_FILENO

2    STDERR_FILENO

close(2)

#include

int close(int fd);

功能:关闭一个已经打开的文件

参数:

fd:使用open(2)函数的返回值

返回值:

成功:0

错误:-1,同时errno被设置

linux 如何关闭文件,Linux文件打开与关闭相关推荐

  1. linux文件操作篇打开和关闭文件

    2.1 打开文件和关闭文件 #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h>  头文件 ...

  2. C++文件操作(打开、关闭、文件读取数据存入数组)

    文件操作 1.文件打开 2.文件关闭 3.文件数据读取 4.数据输出至文本文件 有待补充-- 1.文件打开 在fstream类中,open():实现打开文件的操作,从而将数据流和文件进行关联. voi ...

  3. C语言文件类型和打开,关闭文件

    文件类型 读取文件需要文件信息(读写位置,内存缓冲地址....),这些信息放在"文件信息区". 由系统定义的FILE结构体类型可对其进行描述,定义在头文件stdio.h中. 可使用 ...

  4. python 关闭窗口_Python窗口打开和关闭

    这是由于 if event.type = pygame.KEYUP: . 打开文件将导致它立即关闭,但在解释器(空闲)中运行它将显示错误.把它改成 if event.type == pygame.KE ...

  5. 打开计算机无法关闭窗口,电脑中“打开或关闭Windows功能”窗口出错无法显示怎么解决...

    ‍ 当我们想要开启或删除电脑系统中的某些应用时,需要打开控制面板中的"打开或关闭Windows功能"窗口来进行设置.但是,有的用户可能由于某些原因导致打开该窗口出错,无法显示里面 ...

  6. 关闭hp打印机 cd_打开和关闭CD托盘

    关闭hp打印机 cd 大家好, 这是用于打开和关闭CD TRAY的简单方法. 请发表评论! 'add this lines of code in the declaration section of ...

  7. linux标准I/O——流的打开和关闭

    文章目录 1.打开流 2.mode参数 3.fopen举例 4.新建文件权限 5.处理错误信息 6.关闭流 1.打开流 2.mode参数 3.fopen举例 #include<stdio.h&g ...

  8. linux关闭沙盒模式,打开或关闭沙盒模式以禁用宏

    注册表项的特定位置因运行的 Access 版本.Windows 和 Access 版本的 (32 位或 64 位) 以及是否具有即点即用安装而异. 如果在从下面显示的可能选项中查找正确的注册表项时遇到 ...

  9. android 关闭蓝牙功能,android – 打开和关闭蓝牙?

    你需要 在您的清单文件中,以及变量如: private final integer REQUEST_ENABLE_BT = 1; 和 BluetoothAdapter mBluetoothAdapte ...

  10. 联想笔记本关闭锁定计算机,如何打开或关闭ThinkPad笔记本电脑的滚动锁定功能...

    滚动锁定键也称为滚动锁定屏幕键. Scroll Lock键首先出现在IBM PC / XT型号的83键盘和AT界面的84键盘上. 如今,Scroll Lock键不仅出现在我们经常使用的PC的101键盘 ...

最新文章

  1. php集成paypal付款流程,在PHP中集成PayPal标准支付
  2. 吴恩达深度学习笔记(105)-人脸识别之面部验证与二分类
  3. “microsoft ace oledb 12.0 未注册”疑云
  4. linux安全加固(2)
  5. 轮子一定要是圆的吗?
  6. c语言数组的使用步骤,C语言中为什么要使用数组?详细图解数组的使用
  7. Python Pandas导出Hbase数据到dataframe
  8. Java面试之阻塞队列
  9. 普通程序员能实现财务自由吗?
  10. Android开发学习笔记:圆角的Button
  11. 今天分享一下做支付宝小程序遇到的坑。ISV权限不足,建议在开发者中心检查对应功能是否已经添加。验签出错,建议检查签名字符串或签名私钥与应用公钥是否匹配
  12. win10 系统字体大小修改
  13. postman“在Tests中通过data.token获取token失败”的解决方法
  14. APM32F103C8T6兼容性测试
  15. CAD打断曲线(网页版)
  16. 51单片机之共阳数码管
  17. Linux电脑睡眠后黑屏打不开,电脑睡眠后黑屏打不开怎么解决
  18. HDFS物理块存储大小
  19. 丘成桐计算机竞赛用什么电脑,丘成桐这样的学术竞赛到底对申请有没有用?
  20. Shopee选品:三个错误的逻辑思维,你犯了吗?

热门文章

  1. Python 中导入模块
  2. this、super的用法
  3. mc红石java,[PR]红石计划 (ProjectRed)
  4. springcloud微服务(九)-服务发现Discovery
  5. STM32-通过串口收发控制LED亮灭(使用USART1 查询法)
  6. python 倒入模块方法
  7. ARM NEON编程
  8. 出其不意小妙招(持续更新中)
  9. 直播课堂系统06-搭建项目前端环境
  10. VIO-SLAM中的欧拉积分、中点积分与龙格-库塔积分