Oleksii Tsvietnov

已著内容

已著评论

这绝对会是一篇很好的后续文章!这里还有一些其他的想法... 你提到了 _start() 函数,请告诉我们更多!;) 当然,这取决于许多参数,但如果它仅限于一些常用和流行的东西,例如(x86_64,Linux,gcc),那么深入研究 1-3 篇文章的主题是可行的。另一个好的主题是调试,一些关于如何在程序崩溃并被不同信号杀死后调试代码的示例。您还稍微提到了“标准 C 库使用 errno 作为带外通信通道来传达函数可能失败的原因”。我认为,这值得一篇单独的文章。通过示例展示调用者如何与程序交互,什么是 EINVAL 和 ENOENT。请告诉我们更多关于您如何处理错误的信息。

由于两个问题,我无法编译代码
1. 程序的完整列表丢失了 #include
2. 由于某些原因,我的 Linux 系统上没有 uint32_t

$ uname -r
5.0.7-200.fc29.x86_64

$ grep int32_ /usr/include/sys/types.h
typedef unsigned int u_int32_t;

在我修复了这两个问题之后,我成功地编译了代码。
并且,关于 usage() 输出的格式,一个小提示。我认为在 add 中添加 \n 可能是有意义的,否则它在 shell 中看起来不太好

#define USAGE_FMT "%s [-v] [-f hexflag] [-i inputfile] [-o outputfile] [-h]\n"

© . All rights reserved.