myod

题目要求:用c语言实现Linux里的od -tx -tc xxx命令

本次选做作业中的od -tx -tc的意思就是将一个文件输出为包含文件ascii码、以及16进制的输出格式。
od -tx -tc输出test.txt:
myod

过程及代码:

main.c:
myod
myod.c:
myod
myod.h:
myod
makefile:
myod
运行结果:
myod
最后生成的tree:
myod

问题

1.经对比发现相差不大,除了最后一行行量不同,前面字符部分完全相同

2.在编写makefile时每行代码都试了一遍,唯独动态库无法生成,检查发现生成myod.o的命令行少了-fPIC

myod

查阅资料发现其实不加-fPIC也能生成动态库,但是对于源文件有要求,因为不加fPIC编译的so必须要在加载到用户程序的地址空间时重定向所有表目,所以在它里面不能引用其它地方的代码,加上-fPIC选项的 源文件对于它引用的函数头文件编写有很宽松的尺度。比如只需要包含个声明的函数的头文件,即使没有相应的C文件来实现,编译成so库照样可以通过。

参考资料:https://www.cnblogs.com/fengliu-/p/10216878.html

上一篇:tep集成HttpRunner与Flask实现开箱即用


下一篇:图像分割算法(BFS)