zoukankan      html  css  js  c++  java
  • Linux系统编程8_文件I/O

    fcntl.h 头文件,file control的缩写。

    open函数,openat函数:

    int open(const char *path, int oflag);
    
    int openat(int fd, const char *path, int oflag);

    将准备打开的文件或是设备的名字作为参数path传给函数,oflags用来指定文件访问模式。

    两个系统调用成功返回一个新的文件描述符,失败返回-1。两个函数返回的文件描述符一定是最小的未用描述符数值。

    creat函数:

    int creat(const char *path, mode_t mode);

    若成功,返回为只写打开的文件描述符;若出错,返回-1

    close函数:

    int close(int fd);

    若成功返回0,若出错返回-1;

    lseek函数:

    off_t lseek(int fd, off_t offset, int whence);

    若成功返回新的文件偏移量,若出错,返回为-1;

    每个打开的文件都有一个与其相关联的“当前文件偏移量”,通常是一个非负整数。

    用以度量从文件开始处计算的字节数。通常读写操作都从当前文件的偏移量处开始,并使偏移量增加所读写的字节数。

    对参数offset的解释与参数whence有关:

    若whence是SEEK_SET,则将该文件的偏移量设置为距文件开始处offset个字节;

    若whence是SEEK_CUR,则将该文件的偏移量设置为其当前值加offset,offset可为正或负;

    若whence是SEEK_END,则将该文件的偏移量设置为文件长度加offset,offset可正可负;

    可用以下方式获取打开文件的偏移量:

    off_t  curpos;

    curpos = lseek(fd, 0, SEEK_CUR);

    read函数:

    ssize_t  read(int fd,  void *buf,  size_t nbytes);

    调用read函数从打开文件中读数据;

    返回值:读到的字节数,若已到文件尾,返回 0,若出错,返回-1;

    write函数:

    ssize_t  write(int fd, const void *buf, size_t nbytes);

    返回值:若成功,返回已写的字节数;若出错,返回-1;

    其返回值通常与参数nbytes的值相同,否则表示出错。write出错的一个常见原因是:磁盘已写满,或者超过了一个给定的进程的文件长度限制。

    对于普通文件,写操作从文件的当前偏移量处开始。如果在打开该文件时,指定了O_APPEND选项,则在每次写操作之前,将文件偏移量设置在文件的当前结尾处。在一次成功写之后,该文件偏移量增加实际写的字节数。

  • 相关阅读:
    动态获取页面参数内容
    服务器处理静态文件请求
    最简单的Web服务器
    控制台浏览器代码实战
    4.caffe资源汇总(更新中)
    3. caffe中 python Notebook
    2.caffe初解
    1.caffe初入
    有监督学习和无监督学习
    MySQL 之基础操作及增删改查等
  • 原文地址:https://www.cnblogs.com/grooovvve/p/14106039.html
Copyright © 2011-2022 走看看