C语言中对文件最基本的读取和写入函数

C语言read()函数:读文件函数(由已打开的文件读取数据)
头文件:

#include <unistd.h>

定义函数:

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

函数说明:read()会把参数fd 所指的文件传送count 个字节到buf 指针所指的内存中. 若参数count 为0, 则read()不会有作用并返回0. 返回值为实际读取到的字节数, 如果返回0, 表示已到达文件尾或是无可读取的数据,此外文件读写位置会随读取到的字节移动.

附加说明:
如果顺利 read()会返回实际读到的字节数, 最好能将返回值与参数count 作比较, 若返回的字节数比要求读取的字节数少, 则有可能读到了文件尾、从管道(pipe)或终端机读? ?蛘呤莚ead()被信号中断了读取动作.

当有错误发生时则返回-1, 错误代码存入errno 中, 而文件读写位置则无法预期.

错误代码:

  • EINTR 此调用被信号所中断.
  • EAGAIN 当使用不可阻断I/O 时(O_NONBLOCK), 若无数据可读取则返回此值.
  • EBADF 参数fd 非有效的文件描述词, 或该文件已关闭.

C语言write()函数:写文件函数
头文件:

#include <unistd.h>

定义函数:

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

函数说明:write()会把参数buf 所指的内存写入count 个字节到参数fd 所指的文件内. 当然, 文件读写位置也会随之移动.

返回值:如果顺利write()会返回实际写入的字节数. 当有错误发生时则返回-1, 错误代码存入errno 中.

错误代码:

  • EINTR 此调用被信号所中断.
  • EAGAIN 当使用不可阻断I/O 时 (O_NONBLOCK), 若无数据可读取则返回此值.
  • EADF 参数fd 非有效的文件描述词, 或该文件已关闭.
(0)

相关推荐

  • C语言文件操作 fopen, fclose, mkdir详解

    1.建文件夹 int _mkdir(const char *path,mode_t mode); 函数名: _mkdir 功 能: 建立一个目录 用 法: int _mkdir( const char *dirname ); 头文件库:direct.h 返回值:创建一个目录,若成功则返回0,否则返回-1 ===================================================== 2.打开文件fopen() 函数功能: 打开一个文件 函数原型:FILE * fope

  • 使用C语言操作文件的基本函数整理

    C语言creat()函数:创建文件函数 头文件: #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> 定义函数: int creat(const char * pathname, mode_tmode); 函数说明: 1.参数 pathname 指向欲建立的文件路径字符串. 2.Creat()相当于使用下列的调用方式调用open()     open(const char * pathname,

  • C语言中建立和删除文件连接的相关函数讲解

    C语言link()函数:建立文件连接 头文件: #include <unistd.h> 定义函数: int link (const char * oldpath, const char * newpath); 函数说明:link()以参数newpath 指定的名称来建立一个新的连接(硬连接)到参数oldpath 所指定的已存在文件. 如果参数newpath 指定的名称为一已存在的文件则不会建立连接. 返回值:成功则返回0, 失败返回-1, 错误原因存于errno. 附加说明:link()所建立

  • C语言读取文件流的相关函数用法简介

    C语言fread()函数:读文件函数(从文件流读取数据) 头文件: #include <stdio.h> 定义函数: size_t fread(void * ptr, size_t size, size_t nmemb, FILE * stream); 函数说明:fread()用来从文件流中读取数据. 参数stream 为已打开的文件指针, 参数ptr 指向欲存放读取进来的数据空间, 读取的字符数以参数size*nmemb 来决定. Fread()会返回实际读取到的nmemb 数目, 如果此值

  • C语言对组文件处理的相关函数小结

    C语言getgrent()函数:从组文件中取得账号的数据 头文件: #include <grp.h> #include <sys/types.h> 定义函数: struct group * getgrent(void); 函数说明:getgrent()用来从组文件(/etc/group)中读取一项组数据, 该数据以group 结构返回. 第一次调用时会取得第一项组数据, 之后每调用一次就会返回下一项数据, 直到已无任何数据时返回NULL. struct group { char *

  • C语言以数据块的形式读写文件实例代码

    fgets() 有局限性,每次最多只能从文件中读取一行内容,因为 fgets 遇到换行符就结束读取.如果希望读取多行内容,需要使用 fread 函数:相应地写入函数为 fwrite. fread() 函数用来从指定文件中读取块数据.所谓块数据,也就是若干个字节的数据,可以是一个字符,可以是一个字符串,可以是多行数据,并没有什么限制.fread() 的原型为: size_t fread ( void *ptr, size_t size, size_t count, FILE *fp ); fwri

  • C语言中获取文件状态的相关函数小结

    C语言stat()函数:获取文件状态 头文件: #include <sys/stat.h> #include <unistd.h> 定义函数: int stat(const char * file_name, struct stat *buf); 函数说明:stat()用来将参数file_name 所指的文件状态, 复制到参数buf 所指的结构中. 下面是struct stat 内各参数的说明: struct stat { dev_t st_dev; //device 文件的设备编

  • C语言中对文件最基本的读取和写入函数

    C语言read()函数:读文件函数(由已打开的文件读取数据) 头文件: #include <unistd.h> 定义函数: ssize_t read(int fd, void * buf, size_t count); 函数说明:read()会把参数fd 所指的文件传送count 个字节到buf 指针所指的内存中. 若参数count 为0, 则read()不会有作用并返回0. 返回值为实际读取到的字节数, 如果返回0, 表示已到达文件尾或是无可读取的数据,此外文件读写位置会随读取到的字节移动.

  • C语言中的文件读写fseek 函数

    目录 一.fseek 函数简介 二.fseek 函数实战 一.fseek 函数简介 fseek 函数用来移动文件流的读写位置:就好比播放器,可以直接拖拽到精彩的时间点一样,fseek 函数声明如下 #include <stdio.h> #include <stdlib.h> /* *描述:文件读写偏移 * *参数: * [in] stream:文件指针句柄 * [in] offset:偏移量,正数表示正向偏移(向后偏移),负数表示负向偏移(向前偏移) * [in] fromwher

  • C语言中的文件操作详解

    目录 1.为什么使用文件 2.什么是文件 2.1程序文件 2.2数据文件 2.3文件名 3.文件的打开和关闭 3.1文件指针 3.2文件的打开和关闭 4.文件的顺序读写 5.文件的随机读写 5.1fseek 5.2ftell 5.3rewind 6.文本文件和二进制文件 7.文件读取结束的判定 7.1被错误使用的feof 8.文件缓冲区 结论 1.为什么使用文件 在学习结构体时,写了一个简易的通讯录的程序,当程序运行起来的时候,可以在通讯录中增加和删除数据,此时数据是存放在内存当中的,当程序退出

  • 一文带你掌握Go语言中的文件读取操作

    目录 os 包 和 bufio 包 os.Open 与 os.OpenFile 以及 File.Read 读取文件操作 bufio.NewReader 和 Reader.ReadString 读取文件操作 小结 os 包 和 bufio 包 Go 标准库的 os 包,为我们提供很多操作文件的函数,如 Open(name) 打开文件.Create(name) 创建文件等函数,与之对应的是 bufio 包,os 包是直接对磁盘进行操作的,而 bufio 包则是带有缓冲的操作,不用每次都去操作磁盘.

  • C语言中动态内存分配malloc、calloc和realloc函数解析

    目录 前言 free函数 malloc函数 calloc函数 realloc函数 扩充 malloc/calloc/realloc区别总结 总结 前言 有时候我们需要的空间大小不确定,需要随着程序需要的空间而变化, 那以数组开辟的固定大小的空间就不适用了, 这时候我们就需要动态分配开辟空间了.当空间不够时就扩容.动态开辟是在堆区开辟一块连续可用空间,并返回这块空间的地址.有三种函数malloc, calloc和realloc.我们动态内存分配就在堆区开辟空间 上面的四个区只有堆区的空间是需要手动

  • Android编程中File文件常见存储与读取操作demo示例

    本文实例讲述了Android编程中File文件常见存储与读取操作.分享给大家供大家参考,具体如下: MainActivity文件代码如下: package example.com.myapplication; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; im

  • springboot中.yml文件的值无法读取的问题及解决

    目录 yml文件的值无法读取的问题 1.添加maven依赖 2.注解方式在需要使用变量名的类上加上注解 ,@Configuration 3..yml文件配置如下 yml文件不被识别 解决方法 yml文件的值无法读取的问题 1.添加maven依赖 <dependency>     <groupId>org.springframework.boot</groupId>     <artifactId>spring-boot-configuration-proce

  • php中判断文件空目录是否有读写权限的函数代码

    is_writable用来处理,记住 PHP 也许只能以运行 webserver 的用户名(通常为 \'nobody\')来访问文件.不计入安全模式的限制. Example #1 is_writable() 例子 复制代码 代码如下: <?php $filename = 'test.txt'; if (is_writable($filename)) { echo 'The file is writable'; } else { echo 'The file is not writable'; }

  • asp.net中上传图片文件实现防伪图片水印并写入数据库

    复制代码 代码如下: // 涉及命名空间 using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; using System.Web; using Syst

随机推荐