linux打开文件及关闭,Linux的文件操作API涉及创建,打开,读取,写入和关闭文件...

e41a0f78d6bf70b79bd8c42b324046f0.png

其他人可以读取,写入和执行

S_ISUID

设置用户执行ID

S_ISGID

170b801a6b1c087dcb7edb90f49bb06d.gif

设置组的执行ID

除了使用上述宏生成“或”逻辑外,我们还可以使用数字表示自己. Linux总共使用5个数字来表示文件的各种权限: 第一个数字表示已设置的用户ID;第二个数字表示已设置的用户ID. 第二位指示设置的组ID;第三位表示用户自己的权限位;第四位表示该组的许可;最后一位表示他人的权限. 每个数字可以取1(执行许可),2(写许可),4(读许可),0(无)或这些值的总和. 例如,要创建用户可读,可写且可执行的文件,但该组没有权限,其他人可以读取和执行该文件,并将用户ID位置1. 然后,我们应该使用的模式是1(设置用户ID),0(不设置组ID),7(1 + 2 + 4,读,写,执行),0(无权限),5(1 + 4) ,读取并执行),即10705:

打开(“测试”,O_CREAT,10705);

以上陈述等同于:

1745ce6f0e0b3e2763dbdcf94b7dd7fc.png

打开(“测试”,O_CREAT,S_IRWXU | S_IROTH | S_IXOTH | S_ISUID);

如果文件成功打开fly类型文件怎么打开,则打开功能将返回文件描述符. 可以通过对该文件描述符进行操作来实现对该文件的所有后续操作.

读写

打开文件后,我们可以读写文件. 在Linux中提供文件读写功能的系统调用是读写功能:

5-900-png_6_0_0_135_627_622_389_892.979_1262.879-1440-0-192-1440.jpg

int读取(int fdfly类型文件怎么打开,const void * buf,size_t长度);

int写(int fd,const void * buf,size_t长度);

参数buf是指向缓冲区的指针,而length是缓冲区的大小(以字节为单位). 函数read()从文件描述符fd指定的文件中将长度字节读取到buf指向的缓冲区中,返回值是实际读取的字节数. 写函数将把buf指向的缓冲区中的长度字节写入文件描述符fd所指向的文件中,返回值是实际写入的字节数.

标有O_CREAT的Open实际上实现了文件创建功能. 因此,以下函数等效于creat()函数:

3-521-png_6_0_0_135_601_622_417_892.979_1262.879-779-0-528-779.jpg

int打开(路径名,O_CREAT | O_WRONLY | O_TRUNC,模式);

定位

对于随机文件,我们可以在随机位置进行读写,并使用以下功能进行定位:

int lseek(int fd,offset_t偏移量,int何时);

lseek()将文件读写指针相对于wherece移动偏移字节. 操作成功后,将返回文件指针相对于文件头的位置. 参数wherece可以使用以下值:

SEEK_SET: 相对文件开头

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/bofangqi/article-159143-1.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值