广告
返回顶部
首页 > 资讯 > 操作系统 >Linux输入输出与文件
  • 820
分享到

Linux输入输出与文件

Linux 2022-06-03 14:06:04 820人浏览 独家记忆
摘要

1. 基于文件指针的文件操作(缓冲) linux中对目录和设备的操作都是文件操作,文件分为普通文件,目录文件,链接文件和设备文件。 1.1. 文件的创建,打开与关闭 原型为: #inclu

1. 基于文件指针的文件操作(缓冲)

linux中对目录和设备的操作都是文件操作,文件分为普通文件,目录文件,链接文件和设备文件。

1.1. 文件的创建,打开与关闭

原型为:

#include <stdio.h> //头文件包含

FILE *fopen(const char *pach,const char *mode); //文件名 模式

int fclose(FILE *stream);

fopen以mode的方式打开或创建文件,如果成功,将返回一个文件指针,失败则返回NULL.

fopen创建的文件的访问权限将以0666与当前的umask结合来确定。

1.2. 读写文件

基于文件指针的数据读写函数较多,可分为如下几组:

数据块读写:

#include <stdio.h>

size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);

size_t fwrite(void *ptr, size_t size, size_t nmemb, FILE *stream);

fread从文件流stream 中读取nmemb个元素,写到ptr指向的内存中,每个元素的大小为size个字节。

fwrite从ptr指向的内存中读取nmemb个元素,写到文件流stream中,每个元素size个字节。

所有的文件读写函数都从文件的当前读写点开始读写,读写完以后,当前读写点自动往后移动size*nmemb个字节。

1.3.文件定位:

文件定位指读取或设置文件当前读写点,所有的通过文件指针读写数据的函数,都是从文件的当前读写点读写数据的。

常用的函数有:

#include <stdio.h>

int feof(FILE * stream); //通常的用法为while(!feof(fp))

int fseek(FILE *stream, long offset, int whence);//设置当前读写点到偏移whence 长度为offset处

long ftell(FILE *stream); //用来获得文件流当前的读写位置

void rewind(FILE *stream); //把文件流的读写位置移至文件开头 èfseek(fp, 0, SEEK_SET);

feof判断是否到达文件末尾的下一个(注意到达文件末尾之后还会做一次)

fseek设置当前读写点到偏移whence 长度为offset处,whence可以是:

SEEK_SET (文件开头 –>0)

SEEK_CUR (文件当前位置 –>1)

SEEK_END (文件末尾 –>2)

ftell获取当前的读写点

rewind将文件当前读写点移动到文件头

1.4.格式化读写:

#include <stdio.h>

int printf(const char *fORMat, ...); //相当于fprintf(stdout,format,…);

int scanf(const char *format, …);

int fprintf(FILE *stream, const char *format, ...);

int fscanf(FILE *stream, const char *format, …);

int sprintf(char *str, const char *format, ...); // eg: sprintf(buf,”the string is;%s”,str);

int sscanf(char *str, const char *format, …);

以f开头的将格式化后的字符串写入到文件流stream中

以s开头的将格式化后的字符串写入到字符串str中

1.5.单个字符读写:

使用下列函数可以一次读写一个字符

#include <stdio.h>

int fgetc(FILE *stream);

int fputc(int c, FILE *stream);

int getc(FILE *stream); è 等同于 fgetc(FILE* stream)

int putc(int c, FILE *stream); è 等同于 fputc(int c, FILE* stream)

int getchar(void); è 等同于 fgetc(stdin);

int putchar(int c); è 等同于 fputc(int c, stdout);

getchar和putchar从标准输入输出流中读写数据,其他函数从文件流stream中读写数据。

1.6.字符串读写:

char *fgets(char *s, int size, FILE *stream);

int fputs(const char *s, FILE *stream);

int puts(const char *s); è 等同于 fputs(const char *s, int size, stdout);

char *gets(char *s); è 等同于 fgets(const char *s, int size, stdin);

fgets和fputs从文件流stream中读写一行数据;

puts和gets从标准输入输出流中读写一行数据。

fgets可以指定目标缓冲区的大小,所以相对于gets安全,但是fgets调用时,如果文件中当前行的字符个数大于size,则下一次fgets调用时,将继续读取该行剩下的字符,fgets读取一行字符时,保留行尾的换行符。

fputs不会在行尾自动添加换行符,但是puts会在标准输出流中自动添加一换行符。

--结束END--

本文标题: Linux输入输出与文件

本文链接: https://www.lsjlt.com/news/11361.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux输入输出与文件
    1. 基于文件指针的文件操作(缓冲) linux中对目录和设备的操作都是文件操作,文件分为普通文件,目录文件,链接文件和设备文件。 1.1. 文件的创建,打开与关闭 原型为: #inclu...
    99+
    2022-06-03
    Linux
  • Ruby迭代器及文件的输入与输出
    目录前言Ruby 迭代器Ruby each 迭代器语法实例Ruby collect 迭代器语法实例Ruby 文件的输入与输出puts 语句实例gets 语句实例putc 语句实例pr...
    99+
    2023-05-15
    Ruby 迭代器输入与输出 Ruby文件输入与输出
  • python输入与输出
    python输出 python3中的输出 python3中的输出使用函数print(),示例如下: >>> print('hello kitty') print()也可接受多个参数,使用逗号隔开: >>>...
    99+
    2023-01-31
    python
  • Python的输入与输出
    ✅作者简介:CSDN内容合伙人、阿里云专家博主、51CTO专家博主、新星计划第三季python赛道Top1🏆 📃个人主页:hacker707的csdn博客 ...
    99+
    2023-10-08
    python 输入输出
  • Linux下文件输入/输出端口的试炼分析
    这篇文章将为大家详细讲解有关Linux下文件输入/输出端口的试炼分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。文件描述符(File Descriptor)a small, nonnegative in...
    99+
    2023-06-16
  • python基本文件操作(文件输入和输出
    文件输入输出中常用的文件对象方法:open : 返回一个新的文件对象,调用该对象的上的方法可对文件进行任何操作readline: 读取一行数据包括结尾的换行符在内write: 将数据写入文件中close: 关闭文件对象; 举例:读取E盘中的...
    99+
    2023-01-31
    文件 操作 python
  • pandas基础 Series与Dataframe与numpy对二进制文件输入输出
    目录SeriesPython numpy对二进制文件输入输出Series series是一种一维的数组型对象,它包含了一个值序列和一个数据标签 import pandas as pd...
    99+
    2022-11-11
  • java里的输入与输出
    一、概述 输入输出可以说是计算机的基本功能。作为一种语言体系,java中主要按照流(stream)的模式来实现。其中数据的流向是按照计算机的方向确定的,流入计算机的数据流叫做输入流(inputStream),由计算机发出的数据流叫做输出流(...
    99+
    2023-09-13
    java 开发语言
  • C++的输入与输出和格式化输出
    目录一、C++ 输入与输出 格式化输出1.cin与cout2.格式化输出2.1设置域宽及位数2.2按进制输出2.3设置填充符总结一、C++ 输入与输出 格式化输出 1.cin与cou...
    99+
    2022-11-12
  • python基础之输入与输出
    目录Python的输入与输出输出输入总结Python的输入与输出 输出 通过字符串格式化优化不必要的重复输出 %占位符来优化 # 输出 % 占位符,实现字符串可视化输出 na...
    99+
    2022-11-12
  • #5 Python变量与输入输出
    前言 学习一门编程语言,最基本的无非不过学习其变量规则、条件语句、循环语句和函数,接下来的几节将开始记录这些基本的语法,本节主要记录变量规则! 一、Python输入输出 在说Python变量之前,先补充一下Python的输入和输出语句,在...
    99+
    2023-01-30
    变量 输入输出 Python
  • Java中怎么输入与输出
    这篇“Java中怎么输入与输出”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java中怎么输入与输出”文章吧。输入方法第一种...
    99+
    2023-06-29
  • 输入与输出函数—— 关于python 输入和输出你知道多少?
    输入与输出函数—— 关于python 输入和输出你知道多少? 文章目录 输入与输出函数—— 关于python 输入和输出你知道多少?1️⃣输入 print()🍹基本语法...
    99+
    2023-09-04
    python 开发语言
  • 一文带你了解Python中的输入与输出
    目录Python输入补充:命令行输入Python输出print()输出format()格式化输出总结Python输入 在Python中,使用内置函数input()可以接收用户的键盘输...
    99+
    2023-05-18
    Python输入与输出 python样例输入与样例输出 python输入与输出总结
  • 怎么使用Series、Dataframe与numpy对二进制文件输入输出
    这篇“怎么使用Series、Dataframe与numpy对二进制文件输入输出”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“...
    99+
    2023-07-02
  • java文件操作输入输出结构详解
    目录一、实验目的二、实验代码1.使用Java的输入输出2.使用RandomAccessFile流将一个文本文件倒置读出3.请分别使用不带缓冲区和带缓冲区的字节流复制图片(或者音频或者...
    99+
    2022-11-13
  • Python基础:输入与输出(I/O)
    来做一个NLP任务   步骤为:     1.读取文件;     2.去除所有标点符号和换行符,并把所有大写变成小写;     3.合并相同的词,统计每个词出现的频率,并按照词频从大到小排序;     4.将结果按行输出到文件 out....
    99+
    2023-01-31
    基础 Python
  • 【Java基础:输入输出类】:Scanner类(输入输出)
    图片来自互联网 文章目录 前言         一、Scanner是什么?         二、Scanner 的使用                  1.next()   获取字符的使用:          2...
    99+
    2023-10-10
    开发语言 java eclipse intellij-idea
  • 图文详解Java中的字节输入与输出流
    目录字节输入流 字节输入流结构图FileInputStream类构造方法:常用读取方法:字节输出流 字节输出流结构图:FileOutputStream类构造方法:常用写入方法:总结字节输入流 java.io.InputStream抽象类是...
    99+
    2017-02-14
    java字节输入流和输出流 java文件输入输出字符流 java字节流
  • Ruby迭代器及文件的输入与输出实例代码分析
    这篇文章主要介绍“Ruby迭代器及文件的输入与输出实例代码分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Ruby迭代器及文件的输入与输出实例代码分析”文章能帮助大家解决问题。Ruby 迭代器简单...
    99+
    2023-07-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作