其他人可以读取,写入和执行
S_ISUID
设置用户执行ID
S_ISGID
设置组的执行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);
以上陈述等同于:
打开(“测试”,O_CREAT,S_IRWXU | S_IROTH | S_IXOTH | S_ISUID);
如果文件成功打开fly类型文件怎么打开,则打开功能将返回文件描述符. 可以通过对该文件描述符进行操作来实现对该文件的所有后续操作.
读写
打开文件后,我们可以读写文件. 在Linux中提供文件读写功能的系统调用是读写功能:
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()函数:
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