没有合适的资源?快使用搜索试试~ 我知道了~
首页linux文件操作编程
linux文件操作编程
需积分: 18 62 下载量 119 浏览量
更新于2023-07-16
评论
收藏 266KB DOC 举报
一、文件类型 Linux系统有下面这些文件类型: 1)普通文件(regular file)。这是最常见的文件类型,这种文件包含了某种形式的数据。至于这种数据是文本还是二进制数据对于Linux系统而言并无区别。 2)目录 (directory)。文件夹。 3)字符特殊文件(character special file)。这种文件用于系统中某些类型的设备,例如声卡、网卡、键盘、鼠标。 4)块特殊文件(block special file)。这种文件典型地用于磁盘设备。系统中的所有设备或者是字符特殊文件,或者是块特殊文件。 5)FIFO。这种文件用于进程间的通信,有时也将其称为命名管道。 6)套接口(socket)。这种文件用于进程间的网络通信。套接口也可用于在一台宿主机上的进程之间的非网络通信。 7)符号连接(symbolic link)。这种文件指向另一个文件。 .............................
资源详情
资源评论
资源推荐
文件操作
一、文件类型
系统有下面这些文件类型:
)普通文件。这是最常见的文件类型,这种文
件包含了某种形式的数据。至于这种数据是文本还是二进制数据对
于系统而言并无区别。
)目录 。文件夹。
)字符特殊文件。这种文件用于系
统中某些类型的设备,例如声卡、网卡、键盘、鼠标。
)块特殊文件。这种文件典型地用于磁
盘设备。系统中的所有设备或者是字符特殊文件,或者是块特殊文
件。
) 。这种文件用于进程间的通信,有时也将其称为命名
管道。
!)套接口。这种文件用于进程间的网络通信。套接
口也可用于在一台宿主机上的进程之间的非网络通信。
")符号连接#。这种文件指向另一个文件。
文件类型信息包含在结构的$#成员中。可以用下面
的宏确定文件类型。这些宏的参数都是结构中的$#成员。
%$%&'(普通文件
%$%)&目录文件
%$%*+&字符特殊文件
%$%,-块特殊文件
%$% 管道或
%$%.-符号连接
%$%% *-套接字
如果文件类型是待判定的类型,则这些宏的值非 /。
二、文件的属性和操作
下面将从函数开始,逐个说明结构的每一个成员以了
解文件的所有属性。在此过程中,还将说明修改这些属性的各个函
数更改所有者,更改许可权等。
2.1 stat、fstat 和 lstat 函数取得文件的属性
01234
01234
5pathname65buf7
8ledes65buf7
5pathname65buf7
三个函数的返回:若成功则为/,若出错则为9
给定一个pathname,函数返回一个与此命名文件有关的
信息结构, 8函数获得已在描述符ledes上打开的文件的有关
信息。函数类似于,但是当命名的文件是一个符号连接时,
返回该符号连接的有关信息,而不是由该符号连接引用的文件
的信息。
第二个参数是个指针,它指向一个我们应提供的结构。这些函
数填写由8指向的结构。该结构的定义如下:
:
;$$;725;52
$$72552
#$$#72552
$$725#852
$$725)8<52
$$725)8<52
;$$;725;8;52
=$$>725>652
>$$>725>8#2 52
$$725#852
#$$#725#852
#$$##725#8#52
#$$#725#852
?7
使用 函数最多的可能是 9 命令,用其可以获得有关一个文件
的所有信息。
9<9@9AB//3
2.2 文件所有者 ID 和组所有者 ID
每个文件有一个所有者和组所有者,所有者由结构中的
$表示,组所有者则由$成员表示。
2.3 文件存取许可权
$#值包含了对文件的存取许可权位。所有文件类型目录,
字符特别文件等都有存取许可权。每个文件有C个存取许可权位,
如下所示:
%$&D%&用户9读
%$ED%&用户9写
%$FD%&用户9执行
%$&(&G组9读
%$E(&G组9写
%$F(&G组9执行
%$& H+其他9读
%$E H+其他9写
%$F H+其他9执行
这里的术语用户指的是文件所有者。
三类存取许可权——读、写及执行——以各种方式由不同的函
数使用。我们将这些不同的使用方法列在下面,当说明这些函数时,
再进一步作讨论。
第一个规则是,我们用名字打开任一类型的文件时,对该名
字中包含的每一个目录,包括它可能隐含的当前工作目录都
应具有执行许可权。这就是为什么对于目录其执行许可权位
常被称为搜索位的原因。例如,为了打开文件222
<,需要具有对目录262622的执行许可权。
然后,需要对该文件本身的适当许可权,这取决于以何种方
式打开它只读,读9写等。如果当前目录是226那么
为了打开文件<,需要有对该目录的执行许可。如在指
定打开文件<时,可以隐含当前目录,而不用显式地提
及22,也可使用32<。注意,对于目录的读许可
权和执行许可权的意义不相同。读许可权允许我们读目录,
获得在该目录中所有文件名的列表。当一个目录是我们要存
取文件的路径名的一个分量时,对该目录的执行许可权使我
们可通过该目录也就是搜索该目录,寻找一个特定的文件
名。
对于一个文件的读许可权决定了我们是否能够打开该文件进
行读操作。这对应于函数的 $&) .I和 $&)E&
标志。
对于一个文件的写许可权决定了我们是否能够打开该文件进
行写操作。这对应于函数的 $E& .I和 $&)E&
标志。
为了在函数中对一个文件指定 $H&D.*标志,必须
对该文件具有写许可权。
为了在一个目录中创建一个新文件,必须对该目录具有写许
可权和执行许可权。
为了删除一个文件,必须对包含该文件的目录具有写许可权
和执行许可权。对该文件本身则不需要有读、写许可权。
如果用系列函数中的任何一个执行某个文件,都必须
对该文件具有执行许可权。
进程每次打开、创建或删除一个文件时,内核就进行文件存取
许可权测试,而这种测试可能涉及文件的所有者$和
$,进程的有效)有效用户)和有效组)以及进程的添加
组)除了在口令文件中对一个用名指定一个组)外,还允许
一个用户属于另外一些组,这些组)称为用户的添加组)。两个所
有者)是文件的性质,而有效)和添加组)则是进程的性质。内核
进行的测试是:
)若进程的有效用户)是/超级用户,则允许存取。这给予
了超级用户对文件系统进行处理的最充分的自由。
)若进程的有效用户)等于文件的所有者)也就是该进程拥
有此文件:若适当的所有者存取许可权位被设置,则允许存取,否
则拒绝存取。
适当的存取许可权位指的是,若进程为读而打开该文件,则用
户9读位应为;若进程为写而打开该文件,则用户9写位应为;若
进程将执行该文件,则用户9执行位应为。
)若进程的有效组)或进程的添加组)之一等于文件的组
):若适当的组存取许可权位被设置,则允许存取,否则拒绝存取。
)若适当的其他用户存取许可权位被设置,则允许存取,否则
拒绝存取。
按顺序执行这四步。注意,如若进程拥有此文件第步,
则按用户存取许可权批准或拒绝该进程对文件的存取——不查看组
存取许可权。相类似,若进程并不拥有该文件。但进程属于某个适
当的组,则按组存取许可权批准或拒绝该进程对文件的存取——不
查看其他用户的存取许可权。
2.4 进程的实际用户/组 ID 和有效用户/组 ID
当执行一个程序文件时,进程的有效用户)通常就是实际用户
),有效组)通常是实际组)。但是可以在文件方式字$#
中设置一个特殊标志,其定义是“当执行此文件时,将进程的有效用
户)设置为文件的所有者$J。与此相类似,在文件方式字中
可以设置另一位,它使得执行此文件的进程的有效组)设置为文件
的组所有者$。在文件方式字中的这两位被称之为设置9用户9
)99)位和设置9组9)99)位。
例如,若文件所有者是超级用户,而且设置了该文件的设置9用
户9)位,然后当该程序由一个进程运行时,则该进程具有超级用户
优先权。不管执行此文件的进程的实际用户)是什么,都作这种处
理。作为一个例子,程序<允许任一用户改变其口令,该程
序是一个设置9用户9)程序。因为该程序应能将用户的新口令写入
口令文件中一般是22<或22<6而只有超级用户
才具有对该文件的写许可权,所以需要使用设置9用户9)特征。
因为运行设置9用户9)程序的进程通常得到额外的许可权,所
以编写这种程序时要特别谨慎。
函数中,设置9用户9)位及设置9组9)位都包含在
$#值中。这两位可用常数%$%D)和%$%()测试。
2.5 access 函数:存取许可权测试
函数按进程的实际用户)和实际组)进行存取许可权测
试。
0134
5p a thname6mode7
返回:若成功则为/,若出错则为9
其中,mode取值如下:
&$ -测试读许可权
E$ -测试写许可权
F$ -测试执行许可权
$ -测试文件是否存在
剩余37页未读,继续阅读
hezhiyonging
- 粉丝: 12
- 资源: 126
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0