type
status
date
slug
summary
tags
category
icon
password

填空题

1、gdb的 命令可以对行号与函数名设置断点,____ 命令越过函数执行,____ 命令进入函数执行,_______ 命令跳转到某个行号,_______ 命令继续执行断点后的程序,_______ 命令清除断点。
 
考点:GDB(GNU Debugger)的基本调试操作命令。
  • break:设置断点,可通过函数名或行号。
  • next:单步执行,不进入函数内部。
  • step:单步执行,会进入函数内部。
  • jump 行号:无条件跳转到某行执行,通常用于测试或跳过代码。
  • continue:程序遇到断点暂停后继续运行。
  • delete:删除断点(可通过断点编号删除特定断点)。
 
2、int open(constchar *pathname,int flags,mode_t mode);中flags flags表示打开文件所采取的动作,有:O_RDONLY(_______ ),O_WRONLY( ___),O_RDWR( _____)。打开/创建文件时,至少得使用上述三个常量中的一个,以下常量是选用的:
O_APPEND( ________)
O_CREAT ( ________)
O_EXCL (如果要创建的文件已存在,则返回 -1,并且修改errno的值)
O_TRUNC( _________)。
 
考点:Linux 系统调用 open() 函数的掌握,包括 flags 参数的使用。
  • O_RDONLY / O_WRONLY / O_RDWR 是三种基本的访问模式,只能选一个。
  • O_APPEND:文件指针在每次写操作时移动到文件末尾,实现追加写入。
  • O_CREAT:若文件不存在,则创建该文件,需要配合 mode 参数。
  • O_EXCL:与 O_CREAT 一起使用时,若文件已存在,则 open() 失败。
  • O_TRUNC:若文件已存在,并以写方式打开,则文件内容会被截断清空。
 
 

操作题

1、gdb的运用:
将下面计算10的阶乘程序输入,并且用gcc编译链接
编译成带有调试信息的可执行文件:
在gdb中展开调试:
gdb myfactor
(gdb)l
...
下列gdb中的调试操作必须熟练掌握:
列程序代码、加断点、开始运行、显示断点处变量的值、继续或单步运行、退出
每个同学以自己学号的最后一位为循环轮次,显示在这一轮循环中的i,s的值。如:
202....5的同学在截图时,需要给我看gdb环境调试myfactor程序中,断点暂停在i=5时,s=?。
尾号为0,i=10。。。

操作题一

编写程序代码如下
notion image
编译可执行文件,并启动GDB调试
notion image
下面执行常用调试命令:
  • (gdb)l 查看源码
notion image
  • (gdb)break 8 在第8行设置断点(简写b 8)
  • (gdb)run 开始运行程序(简写r)
  • (gdb)print i 打印变量i(简写p i)
  • (gdb)print s 打印变量s(简写p s)
  • (gdb)next 单步执行,不进入函数(简写n)
  • (gdb)continue 继续执行直到下一个断点(简写c)
  • (gdb)quit 退出(简写q)
我们先来看看前两次断点打印变量的状况
notion image
(我的学号为2022214368)
现在我们continue,查看i=8时s的值,发现s = 5040.
notion image
最后输入quit退出即可。
notion image
 

操作题二

2、配合书本P110 6-3.c程序,编写一个writeemployee.c程序,实现向employee.txt文档(也可自己命名)写入employee结构类型记录,可实现写入多条记录。
然后实现exam6-3.c,看能否正确读出employee.txt中的记录。给出运行结果。
编写程序writeemployee.c程序。
notion image
代码如下所示:
编译和运行程序
notion image
编写exam6-3.c代码
notion image
编译运行该程序,输出如下所示:
notion image
 

操作题三

3、给出P112 exam6-4.c和P120 exam6-9.c的运行结果:
  • exam6-4.c源代码
运行结果如下所示
notion image
说明该程序的主要功能是输出执行文件的详细信息,包括最后访问时间,最后修改时间,文件状态的最后更改时间等。
 
  • exam6-9.c源代码
运行结果如下所示:
notion image
它会列出指定目录下的所有文件和文件夹名称。
智能体开发与接口调用uniapp入门须知
Loading...
Koreyoshi
Koreyoshi
一个无可救药的乐观主义者
Latest posts
编译原理:文法和语言
2025-6-3
智能体开发与接口调用
2025-6-3
软件工程:面向对象设计
2025-6-3
软件工程:面向对象的需求获取与需求分析
2025-6-3
软件工程:软件测试
2025-6-3
编译原理:语法制导翻译技术和中间代码生成
2025-6-3
Announcement
🎉写给自己的2025心愿🎉
保研
国奖
完善博客
学一门乐器
发表一篇论文
拍摄人生照片
去3个城市旅游
专业课知识视频
拍摄毕业季视频
----- 2025 ------
👏希望我们一起变好👏