Linux 新手上路之文件编程open概述(1)——by热心市民ly

 Linux 文件编程的内容众多。本人新手上路如果浅谈的不好希望有大佬指正。

那我们话不多说开始说说我们的文件编程。那我是把学习文件编程的重点放在了如何用代码操作文件实现文件的,创建,打开,以及自动执行。我们平时在windows平台下手动修改文档的操作我想对大家来说都不陌生吧。无非就是先打开或者创建一个文档,然后去编辑它,接着保存和关闭文档。那我们平时手动最常用的linux编辑文档就是VI了之后一系列操作就不废话了。接下来就是说到我们的文件编程啦,和我之前说的操作步骤一至。我们同样也通过编程来打开,修改,和关闭目标文件。Linux系统呢为我们提供了以系列的API,如:打开文件 open;读写文件 read/write;光标定位lseek;关闭文件close。

那这一章我们先讲文件的打开及其创建。首先我们查看man手册看一下函数原型

要使用open函数首先得包涵#include的这三个头文件(以后这些说明就略过啦,相信大家都懂)。那我们来看open的第一个函数。

int open(const char *pathname,int flags);第一个参数很简单一个指向文件路径名的指针,第二个为一个整形数的权限。

再来看int open(const char *pathname,int flags,mode_t mode)只是多了一个参数,对于open函数来说,第三个参数仅当创建新文件时(即 使用了O_CREAT 时)才使用,用于指定文件的访问权限位。

下列是参数flags 所能使用的标志位

1

2

3

O_RDONLY    以只读方式打开文件

O_WRONLY    以只写方式打开文件

O_RDWR     以可读写方式打开文件。

上述三种标志位是互斥的,也就是不可同时使用,但可与下列的标志位利用OR(|)运算符组合。

1

2

3

4

5

6

7

8

9

10

O_CREAT   若欲打开的文件不存在则自动建立该文件。

O_EXCL    如果O_CREAT也被设置,此指令会去检查文件是否存在。文件若不存在则建立该文件,否则将导致打开文件错误。此外,若O_CREAT与O_EXCL同时设置,并且欲打开的文件为符号连接,则会打开文件失败。

O_NOCTTY  如果欲打开的文件为终端机设备时,则不会将该终端机当成进程控制终端机。

O_TRUNC   若文件存在并且以可写的方式打开时,此标志位会令文件长度清为0,而原来存于该文件的资料也会消失。

O_APPEND  当读写文件时会从文件尾开始移动,也就是所写入的数据会以附加的方式加入到文件后面。

O_NONBLOCK    以不可阻断的方式打开文件,也就是无论有无数据读取或等待,都会立即返回进程之中。

O_NDELAY  同O_NONBLOCK。

O_SYNC    以同步的方式打开文件。

O_NOFOLLOW    如果参数pathname所指的文件为一符号连接,则会令打开文件失败。

O_DIRECTORY   如果参数pathname所指的文件并非为一目录,则会令打开文件失败。

最后了解一下对于这个函数的描述,用此函数打开或者创建文件后会返回一个文件描述符(文件描述符划重点哦),打开多个open会返回对应个数且返回值数值不同的文件描述符,描述符将用于我们用户的后续操作例如读写,光标定位之类的。那我们一般来说程序中可能会打开很多个open,而这时候对于你所打开的文件要操作哪个呢?这就取决于你所运用的文件描述符啦。

好啦,第一天试水。明天接着写open函数实例。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值