首页 > 其他分享 >《信息安全系统设计与实现》第二周学习笔记

《信息安全系统设计与实现》第二周学习笔记

时间:2023-09-17 16:33:45浏览次数:26  
标签:文件 fread 缓冲 信息安全 调用 笔记 第二周 fwrite 库函数

I/O库函数

  • 方便用户使用,提高文件操作整体效率的一系列文件操作函数。

I/O库函数与系统调用

系统调用函数

  • open()
  • read()
  • write()
  • lseek()
  • close()

I/O库函数

  • fopen()
  • fread()
  • fwrite()
  • fseek()
  • fclose()

I/O库函数的算法

fread

  1. 在第一次调用fread()时,FILE结构体的缓冲区是空的,fread()使用保存的文件描述符fd发出一个
    n= read (fd, fbuffer, BLKSIZE);
  2. 在随后的每次fread()调用中,它都尝试满足来自FILE结构体内部缓冲区的调用。

fwrite

  • 与fread()算法类似,只是数据传输方向不同。

fclose算法

I/O库模式

  • fopen()中的模式参数可以指定为:“r”、“w”、“a”,分别代表读、写、追加。
  • “r+”:表示读/写,不会截断文件。
  • “w+”:表示读/写,但是会先截断文件;如果文件不存在,会创建文件。
  • “a+”:表示通过追加进行读/写;如果文件不存在,会创建文件。

实践

  • 编写一个C程序,计算文本文件的行数
    编写C程序


    编译

    运行

行模式I/O

char *fgets(char *buf,int size,FLIE *fp)
int fputs(char *buf,FILE *fp)

格式化I/O

  • 格式化输入
  • 格式化输出

内存中的转换函数

其他I/O库函数

  • fseek()、ftell()、rewind():更该文件流中的读/写字节位置
  • feof()、ferr()、fileno():测试文件流状态
  • fdopen():用文件描述符打开文件流
  • freopen():以新名称重新打开现有的流
  • setbuf()、setvbuf():设置缓冲方案
  • popen():创建管道,复刻子进程来调用sh

限制混合fread-fwrite

  • 当某文件流同时用于读、写时,就会限制使用混合fread()和fwrite()调用。规范要求每对fread()和fwrite()之间至少有一个fseek()和ftell()。

文件流缓冲

  • 无缓冲:从非缓冲流中写入或读取的字符将尽快单独传输到文件或从文件中传输
  • 行缓冲:遇到换行符时,写入行缓冲流的字符以块的形式传输
  • 全缓冲: 写入全缓冲流或从中读取的字符以块大小传输到文件或从文件中传输
  • _IONBUF: 无缓冲
  • _IOLBUF: 行缓冲
  • _IOFBUF: 全缓冲

苏格拉底挑战




标签:文件,fread,缓冲,信息安全,调用,笔记,第二周,fwrite,库函数
From: https://www.cnblogs.com/zsj6787/p/17707210.html

相关文章

  • Unix/Linux系统编程学习笔记第九章
    《信息安全系统设计与实现》第二周学习笔记第九章I/O库函数I/O库函数与系统调用每个I/O库函数的根都在对应的系统调用函数中系统调用函数open()read()write()lseek()close()I/O库函数fopen()fread()fwrite()fseek()fclose()I/O库函数的算法fread算法:(1)第一......
  • Qemu源码分析(5)—Apple的学习笔记
    一,前言前言本节主要看线程什么时候创建的及创建的线程有什么作用。二,源码分析第一次进入断点仅主线程4215.root@ubuntu:/home/applecai#ps-T-p4215PIDSPIDTTYTIMECMD42154215pts/800:00:00qemu-system-gnu通过搜索文件名pthread关键字,然后找到qemu-thread-posix.c......
  • 20211325 2023-2024-1 《信息安全系统设计与实现(上)》第二周学习笔记
    202113252023-2024-1《信息安全系统设计与实现(上)》第二周学习笔记 一、任务要求自学教材第九章,提交学习笔记(10分)本章是复习C语言中的文件操作内容,结构化从文本文件操作,二进制文件操作两个大内容考虑,以前可能只关注文本文件的操作,我们以后更多的是操作二进制文件。文本文......
  • 2023-2024-1 20211327 信息安全系统设计与实现 学习笔记2(必做)
    学习笔记2C语言文件操作内容知识点总结运用ChatGPT进行苏格拉底挑战,发现问题与解决思路实践过程截图C语言文件操作内容知识点总结C语言文件基础操作字符读写、行读写、任意位置读写数据结构读写结构化从文本文件操作二进制文件与文本文件转换C语言文件基础操作1.......
  • C++ Primer 学习笔记——第十章
    第10章前言在前面我们学习容器的时候,是否发现标准库下的对容器的操作并不是太多(或许,初学时已经觉得好多了......
  • Linux教材第九章学习笔记——I/O库函数
    C语言文件操作内容复习 cd..  返回上级目标文件: ./  执行文件:对文件内容进行修改,在vim命令行输入wq保存后返回: gcc编译后输入./a.out可显示出c文件运行结果: 编译预处理: 编译: 汇编: 用字符方式逐个打印hello.c;打印十六进制文件: I/O库函数知识......
  • PWN做题笔记1
    原题在某个名字被51cto屏蔽了的CTF刷题网站,题目为ret2text题目属于栈溢出给出了地址和端口,压缩包中有一个二进制程序pwnfile命令可以看到是64位ELF程序,这里pwn是文件名checksec发现没有开启任何安全措施程序运行如下:ida64反汇编,发现gets输入没有边界检查0x70,存在注入:secure函数调用......
  • (第二周)第九章学习笔记
    Linux系统设计主要内容本章讨论了I/O库函数,解释了I/O库函数的作用及其相对于系统调用的优势。详细介绍I/O库函数算法,包括fread、fwrite、fclose算法。知识点归纳目录I/O库函数与系统调用I/O库函数算法(1)fread算法(2)fwrite算法(3)fclose算法使用I/O库函数或系统调用I/O......
  • Linux 入门笔记
    一开始对linux总有些抵触,黑黑的命令框不知道如何下手,这次因为工作交接的缘故需要负责之前同事的Node后端部分,node,redis这些都是部署在Linux上的,看了几次运维的同学噼里啪啦的敲命令,黑的白的一闪一闪,我都还没看清楚敲的啥,敬佩之情油然而生。没办法,不能怂啊,于是开始学Linux,先装个虚......
  • HTML+CSS学习笔记
    HTML骨架:(VSCode可以快速生成骨架:在HTML文件(.html)中,!(英文)配合Enter/Tab键)html:整个网页head:网页头部,用来存放给浏览器看的信息,例如CSStitle:网页标题body:网页主体,用来存放给用户看的信息,例如图片、文字 常用标签:1、标题标签:(文字加粗、字号逐渐......