信息安全系统设计与实现——学习笔记2

news/发布时间2024/5/23 21:00:47
任务详情:自学教材第九章,提交学习笔记

Part1 知识点归纳&GPT提问

知识点归纳

系统调用函数和I/O库函数

image

  • 系统调用函数是直接与操作系统交互的函数,用于进行底层的文件操作。I/O库函数则是建立在系统调用函数之上的高级函数,提供更方便和易于使用的接口来进行文件的读写操作。这些函数之间的对应关系是根据它们的功能和用途来确定的。

I/O库函数的算法

image

I/O库模式

image

字符模式

image

行模式

image

GPT提问

I/O库函数及其算法

image
image
image
image
image

I/O库模式

image
image
image

Part2 问题与解决思路

问题一:不知道如何重命名,无法使用rename

image

问题一gpt解决

image

问题一最终解决方案

image

Part3 实践过程截图

编写一个程序,将文件中的小写字母转为大写字母

命令行截图

image

测试原文件

image

运行结果

image

源代码

image

Part4 其他

知识点总结

  • 文件打开和关闭:
    • 使用fopen函数打开文件,并指定打开模式(读取、写入、追加等)和文件路径。
    • 使用fclose函数关闭文件,释放相关资源。
  • 文件读取和写入:
    • 使用fgetc和fputc函数逐字符地读取和写入文件。
    • 使用fgets和fputs函数逐行地读取和写入文件。
    • 使用fread和fwrite函数以二进制方式读取和写入数据块。
  • 格式化输入输出:
    • 使用fprintf和fscanf函数按指定格式进行文件输入输出。
    • 使用printf和scanf函数按指定格式进行标准输入输出。
  • 文件指针操作:
    • 使用ftell函数获取当前文件指针位置。
    • 使用fseek函数移动文件指针到指定位置。
    • 使用rewind函数将文件指针重置到文件开头。
  • 文件结束和错误处理:
    • 使用feof函数检查文件是否已经结束。
    • 使用ferror函数检查文件操作是否发生错误。
    • 使用clearerr函数清除文件错误标志。
  • 二进制文件操作:
    • 使用fwrite和fread函数以二进制方式读写数据。
    • 使用fwrite和fread函数可以读写结构体和数组等复杂数据类型。
  • 文本文件操作:
    • 使用fgets和fputs函数逐行读写文本文件。
    • 使用fprintf和fscanf函数按指定格式读写文本文件。
  • 错误处理:
    • 在使用I/O库函数时,要检查函数的返回值以判断是否发生错误。
    • 可以使用perror函数打印系统错误消息。
    • 可以使用errno变量获取错误码。
  • 文件操作权限:
    • 在某些情况下,可能需要对文件进行更改、删除或重命名等操作。要确保具有足够的权限执行所需的文件操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.jwkm.cn/p/07635055.html

如若内容造成侵权/违法违规/事实不符,请联系宁远站长网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

刷题记录(八)

buuctf-One Pointer PHP 题目给了源码: add_api.php: <?php include "user.php"; if($user=unserialize($_COOKIE["data"])){$count[++$user->count]=1;if($count[]=1){$user->count+=1;setcookie("data",serialize($user));}else{ev…

报错error Component name Index should always be multi-word vue/multi-word-component-names解决方法

1、问题说明:在创建组件命名时,引用 index.vue 的过程中报错; 2、报错的原因及分析:其一、报错的全称为:error Component name "index" should always be multi-word vue/multi-word-component-names翻译为:错误组件名称“索引”应始终为多词 vue/多词组件名称…

P2501 [HAOI2006] 数字序列

69682674_p5先来看第一问。 发现直接做要考虑两数中间的数能否变得合法,所以按套路将 \(a_i\) 减去 \(i\),这样就只要变成单调不降,只要两数合法中间的数就一定能变得合法。考虑不改变的那些数,它们一定单调不降,所以答案就是序列总长度减去最长不下降子序列的长度。 接下…