博客
关于我
二、Linux文件操作示例
阅读量:83 次
发布时间:2019-02-26

本文共 1755 字,大约阅读时间需要 5 分钟。

Linux文件操作示例

Linux系统文件操作主要通过系统调用函数来实现。本文将介绍常用文件操作函数及其使用方法。

系统文件API函数

在使用文件操作函数之前,需先包含必要的头文件:

#include 
#include
#include

文件创建

使用creat函数创建文件:

int creat(const char *filename, mode_t mode);
  • filename:文件名称(字符串形式)
  • mode:文件权限模式
  • 返回值:成功返回0,失败返回-1

文件打开

使用open函数打开文件:

int open(const char *pathname, int flags);int open(const char *pathname, int flags, mode_t mode);
  • pathname:文件名称(字符串形式)
  • flags:打开模式(读模式需设置O_RDONLY,写模式需设置O_RDWRO_WRONLY
  • mode:文件权限模式(可选)
  • 返回值:文件描述符

文件读取

使用read函数读取文件内容:

int read(int fd, const void *buf, size_t length);
  • fd:文件描述符
  • buf:用于存储读取数据的缓冲区
  • length:要读取的数据长度
  • 返回值:实际读取的数据长度

文件写入

使用write函数写入文件:

int write(int fd, const void *buf, size_t length);
  • fd:文件描述符
  • buf:写入数据的缓冲区
  • length:写入的数据长度
  • 返回值:成功返回0,失败返回-1

文件关闭

使用close函数关闭文件:

int close(int fd);
  • fd:文件描述符
  • 返回值:成功返回0,失败返回-1

文件定位

使用lseek函数定位文件指针:

int lseek(int fd, offset_t offset, int whence);
  • fd:文件描述符
  • offset:定位的位置(字节偏移量)
  • whence:定位方式(SEEK_SETSEEK_CURSEEK_END
  • 返回值:成功返回0,失败返回-1

文件操作流程

读操作流程

  • 打开文件
  • 读取文件内容
  • 关闭文件
  • 写操作流程

  • 打开文件
  • 写入文件
  • 关闭文件
  • 示例代码

    写文件函数

    void write_file(char *s) {    int fd;    fd = open("hello.txt", O_CREAT | O_RDWR, S_IRUSR | S_IWUSR); // 创建并打开文件    if (fd > 0) {        write(fd, s, sizeof(s));        close(fd);    } else {        // 处理打开失败的情况    }}

    读文件函数

    int read_file(char *s, int len) {    int fd, rtn_len;    fd = open("hello.txt", O_RDWR); // 读取文件    rtn_len = read(fd, s, len); // 读取文件内容    close(fd); // 关闭文件    return rtn_len;}

    主函数

    int main() {    char testbuf[100] = {0}; // 初始化缓冲区    int len; // 用于存储读取的长度    // 写操作    write_file("hello guoguo\n");    // 读操作    len = read_file(testbuf, 100); // 读取文件内容到缓冲区    testbuf[len] = '/'; // 添加分隔符    printf("Reading File Content: %s", testbuf); // 输出结果}

    以上代码示例展示了如何使用Linux系统文件操作函数进行文件读写操作。通过合理使用这些函数,可以实现文件的创建、读取、写入和关闭等基本操作。

    转载地址:http://vxwu.baihongyu.com/

    你可能感兴趣的文章
    Nutch + solr 这个配合不错哦
    查看>>
    NuttX 构建系统
    查看>>
    NutUI:京东风格的轻量级 Vue 组件库
    查看>>
    NutzCodeInsight 2.0.7 发布,为 nutz-sqltpl 提供友好的 ide 支持
    查看>>
    NutzWk 5.1.5 发布,Java 微服务分布式开发框架
    查看>>
    NUUO网络视频录像机 css_parser.php 任意文件读取漏洞复现
    查看>>
    Nuxt Time 使用指南
    查看>>
    NuxtJS 接口转发详解:Nitro 的用法与注意事项
    查看>>
    NVelocity标签使用详解
    查看>>
    NVelocity标签设置缓存的解决方案
    查看>>
    Nvidia Cudatoolkit 与 Conda Cudatoolkit
    查看>>
    NVIDIA GPU 的状态信息输出,由 `nvidia-smi` 命令生成
    查看>>
    NVIDIA-cuda-cudnn下载地址
    查看>>
    nvidia-htop 使用教程
    查看>>
    nvidia-smi 参数详解
    查看>>
    Nvidia驱动失效,采用官方的方法重装更快
    查看>>
    nvmw安装node-v4.0.0之后版本的临时解决办法
    查看>>
    nvm切换node版本
    查看>>
    nvm安装以后,node -v npm 等命令提示不是内部或外部命令 node多版本控制管理 node多版本随意切换
    查看>>
    ny540 奇怪的排序 简单题
    查看>>