2020-2021-1 20209329 《Linux内核原理与分析》第二周作业MyOD

《Linux内核原理与分析》第二周作业MyOD(选做)

MyOD测试遇到的问题

在myod目录下,利用./bin/20209329_myod运行20209329_myod,在输入文件名时出现段错误。

而切换到/myod/bin目录下,运行20209329_myod,输入同样的文件名,则运行正常。
通过百度了解到,一旦一个程序发生了越界访问,cpu 就会产生相应的保护,于是段错误就出现了。
段错误产生的常见原因:
1.访问不存在的内存地址
2.访问系统保护的内存地址
3.访问只读的内存地址
思考:可能在myod目录下运行程序,输入文件名,在当前目录找不到对应的文件,也就是访问了fopen访问了当前目录不存在的文件,出现段错误
解决方法:在文件名输入时输入绝对地址

程序正常运行,问题解决。

posted @ 2020-10-18 21:21  不冷惊喜  阅读(72)  评论(1编辑  收藏  举报