linux文件操作二(文件定位和状态函数)

来源:互联网 发布:网络 鱼塘是什么意思 编辑:程序博客网 时间:2024/04/30 09:49
off_t lseek(int fildes, off_t offset, int whence);
include: unistd.h, sys/types.h
result:失败返回-1,成功返回设置的位置
description:对文件描述符fildes的读写位置的进行设置。
parameter:
        fildes:打开的文件句柄
        offset:指定的偏移位置
        whence:偏移方式
                SEEK_SET:   offset是一个绝对位置,从文件的开始位置偏移。
                SEEK_CUR:  offset是一个相对于当前位置的一个相对位置。
                SEEK_END:  offset是一个相对于文件尾的一个相对位置,如果你要读取距离文件尾20的信息,offset= -20;


int fstat (int fildes, struct stat *buf);
int stat (char *path, struct stat *buf);
int lstat (char *path , struct stat *buf);
include: unistd.h, sys/stat.h, sys/types.h
result: 执行成功则返回0,失败返回-1
description:   返回与文件相关的信信息。
parameter:
        fildes:  打开的文件句柄
        paht:   表示文件的路径,可以是相对路径、也可以是绝对路径
        buf:    文件信息将返回此结构体中
                buf结构体的主要成员:
                st_mode:  文件的权限和文件类型信息
                st_ino:       与该文件关联的inode
                st_dev:       保存文件的设备
                st_uid:        文件属主的UID号
                st_gid:        文件属主的GID号
                st_atime:    文件上一次访问的时间
                st_ctime:     文件上一次被访问的时间
                st_mtime:    文件的内容上一次被修改的时间
                st_nlink:       该文件上硬连接的个数
mark:与之相关的宏定义
    文件类型标志
    S_IFBLK:    文件是一个特殊的块设备
    S_IFDIR:    文件是一个目录
    S_IFCHR:   文件是一个特殊的字符设备
    S_IFIFO:     文件是一个FIFO
    S_IFREG:    文件是一个普通文件
    S_FLNK:     文件是一个符号链接
    文件类型:
    S_ISBLK:    测试是否是特殊的块设备文件
    S_ISDIR:    测试是否是目录
    S_ISCHR:   测试是否是特殊的字符设备
    S_ISIFO:     测试是否是FIFO
    S_ISREG:    测试是否是普通文件
    S_FSNK:     测试是否是符号链接
    访问权限
    S_IFMT:  文件类型
    S_IRWXU:  属主的读/写执行权限
    S_IRWXG:  属组的读/写执行权限
    S_IRWXO:  其他用户的读/写执行权限
原创粉丝点击