首页 > 其他分享 >学习笔记2

学习笔记2

时间:2023-09-17 22:14:01浏览次数:31  
标签:知识点 file 文件 fread 笔记 学习 FILE fopen

学习笔记:I/O库函数知识点

知识点归纳

1.系统调用函数
open() 、 read() 、 write() 、 lseek() 、 close()

2.I/O库函数
fopen() 、 fread() 、 fwrite() 、 fseek() 、 fclose()

3.fread算法:
第一次调用fread()时候,FILE结构体的缓冲区时空的,fread()使用保存的文件描述符fd发出一个n = read(fd, fbuffer, BLKSIZE);

4.fwirite算法:
与fread类似,只是数据传输方向不同。

5.fclose算法:
若文件以写的方式被打开,fclose会先关闭文件流的局部缓冲区。然后,它会发出一个close(fd)系统用来关闭FILE结构体中的文件描述符。
最后,它会释放FILE结构体,并将FILE指针重置为NULL。

6.fopen()
fopen()中的模式参数可以指定为"r"、"w"、"a",分别代表读、写、追加。
每个模式字符串可以包含一个"+"号,表示同时读写,或者在写入、追加情况下,如果文件不存在则创建文件。

练习9.3##

编写一个c程序,计算文本文件的行数。

相关的代码:

#include <stdio.h>

int main() {
    FILE *file;
    char ch;
    int line_count = 0;

    // 打开文本文件
    file = fopen("file.txt", "r");

    // 检查文件是否成功打开
    if (file == NULL) {
        printf("无法打开文件。\n");
        return 1;
    }

    // 逐个字符读取文件内容,统计行数
    while ((ch = fgetc(file)) != EOF) {
        if (ch == '\n') {
            line_count++;
        }
    }

    // 关闭文件
    fclose(file);

    // 打印行数
    printf("文件的行数为:%d\n", line_count);

    return 0;
}

创建的文本:

运行结果:

苏格拉底挑战

  1. 知识点1:I/O库函数与系统调用

    我在学习I/O库函数与系统调用知识点,请你以苏格拉底的方式对我进行提问,一次一个问题。

 - 针对我XXX知识点,我理解了吗?

 - 我的回答结束了,请对我的回答进行评价总结。

  1. 知识点2:变参函数

    我在学习变参函数知识点,请你以苏格拉底的方式对我进行提问,一次一个问题。

 - 针对我变参函数知识点,我理解了吗?

 - 我的回答结束了,请对我的回答进行评价总结。

问题与解决思路

在学习过程中,我遇到了以下问题,并使用chatgpt等AI工具解决:

  1. 问题1:我忘记了Linux环境下如何编译c文件,方便快捷的询问gpt

  2. 问题2:一下没想到为什么有任何的fopen()调用失败程序将会终止


    了解知道这是为程序健壮性做的考虑。

标签:知识点,file,文件,fread,笔记,学习,FILE,fopen
From: https://www.cnblogs.com/zqr031029/p/17709934.html

相关文章

  • 性能测试学习笔记(二)
    1.性能指标综述通常我们都从两个层面定义性能场景的需求指标:业务指标和技术指标。这两个层面需要有映射关系,技术指标不能脱离业务指标。所有的技术指标都是在有业务场景的前提下制定的,而技术指标和业务指标之间也要有详细的换算过程。这样一来,技术指标就不会是一块飞地。同时,在......
  • 学习笔记2 第九章的自学归纳
    第9章I/O库函数9.1I/O库函数系统调用是文件操作的基础,但他们只支持数据块的读/写。9.2I/O库函数与系统调用系统调用函数:open()、read()、write()、lseek()、close()open()用于打开一个文件并返回一个文件描述符。read()用于从已打开的文件描述符中读取数据。write()用于......
  • 靶机Scriptkiddie Funbox11 学习总结
    一、信息收集:1、扫描ARP信息:└─#arp-scan–l2、使用nmap扫描端口,-sC使用默认脚本进行漏洞扫描:└─#nmap-sC-sV-oAnmap/funbox192.168.2.23再扫描一下版本:通过上面的信息可以看到:(1)  系统为ubuntu,但是具体的版本不确定(2)  系统开放了21端口,运行的软件为proftpd,版......
  • 第九章学习笔记
    第九章学习笔记一、知识点归纳0.云班课中的提问文件操作都有什么?文件操作涵盖了对文件的创建、打开、读取、写入、关闭等基本操作。这些操作可以在计算机程序中对文件进行处理、管理和维护。常见的文件操作包括:创建文件:创建新的空文件或覆盖已存在的文件。打开文件:打开......
  • 20211316郭佳昊 《信息安全系统设计与实现(上)》 第二周学习笔记
    一、任务要求[1]知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容(4分)我在学***X知识点,请你以苏格拉底的方式对我进行提问,一次一个问题核心是要求GPT:请你以苏格拉底的方式对我进行提问然后GPT就会......
  • 《信息安全系统设计与实现》第二周学习笔记
      第九章I/O库函数I/O库函数:printf():格式化输出函数,用于将数据打印到标准输出设备(通常是显示器)上。scanf():格式化输入函数,用于从标准输入设备(通常是键盘)接收用户输入的数据。putchar():将一个字符输出到标准输出设备。getchar():从标准输入设备获取一个字符。put......
  • 基于DNN深度学习网络的OFDM+QPSK信号检测算法matlab仿真
    1.算法运行效果图预览   2.算法运行软件版本matlab2022a  3.算法理论概述        正交频分复用(OFDM)是一种多载波调制技术,已经广泛应用于数字通信领域。OFDM信号检测是接收端的关键问题之一,目的是将接收到的OFDM信号恢复为原始数据。由于OFDM信号具有高带......
  • java后端学习路线
    java后端学习路线规划图下面图片规划参照了网上和以及自己知道的来规划的。(有可能学习路线不全)*学习视频:b站(我喜欢看尚硅谷的),网上还有很多看自己喜欢那个老师的方式,还有黑马,千锋等等。moon课。*学习资料:学习书本,网上资料,csdn,播客园等。*学习笔记:软件记Typora(代码,文章过......
  • 20211301 学习笔记2
    20211301《Unix/Linux系统编程》学习笔记1教材笔记总结学习目标本章是复习C语言中的文件操作内容,结构化从文本文件操作,二进制文件操作两个大内容考虑,以前可能只关注文本文件的操作,我们以后更多的是操作二进制文件。文本文件中考虑字符读写,行读写,任意位置读写等文件操作......
  • 【刷题笔记】52. N-Queens II
    题目Then-queenspuzzleistheproblemofplacingnqueensonann×nchessboardsuchthatnotwoqueensattackeachother.Givenanintegern,returnthenumberofdistinctsolutionstothen-queenspuzzle.Example:Input:4Output:2Explanation:Therea......