《信息安全系统设计与实现》第二周学习笔记
《信息安全系统设计与实现》第二周学习笔记
一、第九章 I/O库函数
1、系统调用函数
函数 | 描述 |
---|---|
fork | 创建一个新的进程,新进程是当前进程的副本。 |
execve | 在当前进程中执行新的程序。 |
waitpid | 等待指定进程的终止,并获取其退出状态。 |
exit | 终止当前进程并返回退出状态。 |
pipe | 创建一个管道,用于进程间通信。 |
read | 从文件描述符读取数据。 |
write | 向文件描述符写入数据。 |
open | 打开或创建文件。 |
close | 关闭文件描述符。 |
dup/dup2 | 复制文件描述符或将一个文件描述符复制到另一个指定的文件描述符。 |
chdir | 改变当前工作目录。 |
mkdir | 创建一个新的目录。 |
rmdir | 删除一个空的目录。 |
unlink | 删除一个文件。 |
系统调用函数允许程序与操作系统进行交互,执行底层的系统功能。
这些函数提供了访问文件、进程管理、目录操作等功能,使得我们能够编写更加底层的程序和与操作系统进行通信。
然而,不同操作系统可能具有不同的系统调用函数,并且系统调用的使用方式也可能有所不同。
2、I/O库函数:
函数 | 描述 |
---|---|
fread | 用于从文件中读取数据,可以指定要读取的数据块的大小和数量。 |
fwrite | 用于向文件中写入数据,可以指定要写入的数据块的大小和数量。 |
fgetc | 用于从文件中读取一个字符。 |
fputc | 用于向文件中写入一个字符。 |
fgets | 用于从文件中读取一行数据。 |
fputs | 用于向文件中写入一行数据。 |
fprintf | 用于向文件中写入格式化的数据。 |
fscanf | 用于从文件中读取格式化的数据。 |
fclose | 用于关闭一个打开的文件。 |
feof | 用于检测文件是否已经到达文件末尾。 |
rewind | 用于将文件指针重置为文件的开头。 |
fseek/ftell | 用于移动文件指针到指定的位置或者获取当前文件指针的位置。 |
3、fopen()中的模式参数
参数 | 描述 |
---|---|
r | 以只读方式打开文件。文件的指针将会放在文件的开头。 |
w | 以写入方式打开文件。如果文件已存在,则文件内容将被清空;如果文件不存在,则创建新文件。 |
a | 以追加方式打开文件。文件的指针将会放在文件的末尾。如果文件不存在,则创建新文件。 |
x | 以独占方式创建并打开文件。如果文件已经存在,则无法打开文件。 |
t | 文本模式(默认)。 |
b | 二进制模式。 |
+ | 打开文件以进行更新(可读可写)。 |
二、代码实践
1 、在文件夹中编写主程序代码,利用fopen函数,打开input读取其中内容,输出后放入output.txt中,利用了fgetc函数读取其中内容
if (islower(c)):这是一个条件语句,用于检查字符是否为小写字母,当传入的字符是小写字母时,函数返回非零值。
利用字符处理函数c = toupper(c):这是一个字符处理函数,用于将小写字母转换为大写字母
2、经过转换,可以看到input中的小写字母已经转换为了大写
3、代码中文件如下
打开文件失败后,会进行提示
三、苏格拉底问答
四,学习收获和问题
1、编写时遇到的问题
在进行字符转换时,本来打算利用base编码遍历再逐个加,但是通过询问gpt发现不用那么复杂,系统自带可以进行转换的函数,减少了很多工作量
2、代码可能存在的问题
3、代码改进方向
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本