LINUX系统部分常用IO函数

这篇博客详细介绍了在Unix/Linux系统中进行文件操作的各种函数,包括打开、关闭、读写、定位文件指针、获取文件信息、检查文件权限、修改文件尺寸和权限等。通过这些函数,开发者可以实现对文件的全面控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);

        --pathname:文件路径

        --flags:

                O_CREAT  O_WRONLY  O_RDONLY  O_RDWR    O_APPEND 

        --mode 权限设置 such as 0664 0775

        --返回值 int类型的文件描述符fd


int close(int fd);      关闭文件

ssize_t read(int fd, void *buf, size_t count); 读取文件内容至buf

        fd:文件描述符

        buf:一般用一个数组指示 类似 char buf[1024]

        count:传入数组的长度,一般用sizeof(buf)

        返回值:返回读取到的长度,返回值为0表示读取完了,小于0表示发生错误。

ssize_t read(int fd, void *buf, size_t count);  将buf的内容写入文件,参数同上。

off_t lseek(int fd, off_t offset, int whence);  返回文件的指针

fd:文件描述符

offset 偏移量, 一般取0;

whence:

        SEEK_SET  SEEK_CUR  SEEK_END

int stat(const char *pathname, struct stat *statbuf);
        作用:获取一个文件相关的一些信息
        参数:
            - pathname:操作的文件的路径
            - statbuf:结构体变量,传出参数,用于保存获取到的文件的信息
        返回值:
            成功:返回0
            失败:返回-1 设置errno

  int lstat(const char *pathname, struct stat *statbuf);
        参数:
            - pathname:操作的文件的路径
            - statbuf:结构体变量,传出参数,用于保存获取到的文件的信息
        返回值:
            成功:返回0
            失败:返回-1 设置errno

int access(const char *pathname, int mode);
        作用:判断某个文件是否有某个权限,或者判断文件是否存在
        参数:
            - pathname: 判断的文件路径
            - mode:
                R_OK: 判断是否有读权限
                W_OK: 判断是否有写权限
                X_OK: 判断是否有执行权限
                F_OK: 判断文件是否存在
        返回值:成功返回0, 失败返回-1

int truncate(const char *path, off_t length);
        作用:缩减或者扩展文件的尺寸至指定的大小
        参数:
            - path: 需要修改的文件的路径
            - length: 需要最终文件变成的大小
        返回值:
            成功返回0, 失败返回-1

    int chmod(const char *pathname, mode_t mode);
        修改文件的权限
        参数:
            - pathname: 需要修改的文件的路径
            - mode:需要修改的权限值,八进制的数
        返回值:成功返回0,失败返回-1

int fcntl(int fd, int cmd, ...);
    参数:
        fd : 表示需要操作的文件描述符
        cmd: 表示对文件描述符进行如何操作
            - F_DUPFD : 复制文件描述符,复制的是第一个参数fd,得到一个新的文件描述符(返回值)
                int ret = fcntl(fd, F_DUPFD);

            - F_GETFL : 获取指定的文件描述符文件状态flag
              获取的flag和我们通过open函数传递的flag是一个东西。

            - F_SETFL : 设置文件描述符文件状态flag
              必选项:O_RDONLY, O_WRONLY, O_RDWR 不可以被修改
              可选性:O_APPEND, O)NONBLOCK
                O_APPEND 表示追加数据
                NONBLOK 设置成非阻塞

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个头发很多的美女

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值